亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

SQL Server 連接問題案例解析(1)

2024-08-31 00:54:36
字體:
來源:轉載
供稿:網友
SQL Server 連接問題案例解析(1)SQL Server 連接問題案例解析(1)轉載自:http://blogs.msdn.com/b/apgcdsd/archive/2015/04/27/sql.aspx?CommentPosted=true#commentmessage Microsoft Network Monitor(Netmon)是由微軟發布的一款網絡協議數據分析工具,利用Netmon可以捕獲網絡數據并進行查看和分析。在處理SQL Server 的連接問題時,Netmon常常會起到關鍵的作用。在本篇博文中,我將為大家分享一個通過使用 Netmon 解決的經典案例。 在這個案例中,客戶發現在客戶端的 SQL Server Management Studio 中執行某一個Query時就會發生錯誤,錯誤信息是“connection forcibly close by the remote server ”。 為了調查連接被關閉的原因,我們在客戶端和服務端抓取了Netmon。在正式分析這個案例前,我們先來介紹一些有關Netmon的知識和使用技巧。 Netmon界面1. 在Netmon界面中的Frame Summary 部分,我們首先可以看到Frame Number,不管我們在瀏覽時是否有設置filter,Frame Number的值是不會發生改變的,它相當于Frame的一個行號。2. 在左側Network Conversation 中,我們會看到進程的name和ID,在示例中即為Ssms.exe和3352。繼續展開后看到ipv4,那么我們可以知道這個conversation是從哪里來的。再次展開可以看到這個conversation的端口,本示例中,端口為143349428 。在這里需要額外講解一下,當客戶端程序創建連接到SQL Server時會使用哪些端口呢?客戶端會向操作系統申請并使用一個動態端口并向SQL Server發送連接請求。如果在連接時使用的是machine name,PRovider默認會去連接1433端口,這是一個provider的行為,改變這個行為需要修改注冊表:HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSSQLServer/Client/<Provider>/tcp/DefaultPort3. 當客戶端嘗試創建一個連接到SQL Server,有了source port和destination port后,在這兩個port中就會形成一組physical tcp連接。形成連接之后每發一個包,包的sequence值就會發生變化。請注意,只有在同一個物理連接中,sequence的變化是連續的。如果客戶端和SQL Server建立了兩個不同的物理連接,這兩個連接中的sequence沒有任何關系。4. Netmon中數據量很大,如果查看呢?比如在瀏覽一個比較大的Netmon時,我們發現了一個Reset Flag:21 3:46:20 PM 9/5/2014 21.8000442 Ssms.exe 172.22.204.237 172.16.221.38 TCP TCP: [Bad CheckSum]Flags=...A.R.., SrcPort=49428, DstPort=1433, PayloadLen=0,Seq=3636257929, Ack=707503184, Win=0 {TCP:2,IPv4:1}就可以從這個Frame的詳細信息入手。從詳細信息中可以找到它的source port是49428。(1)此時我們可以就通過添加 filterTcp.port==49428 來過濾出這個Reset的conversation。(2)另外一種過濾方法是直接在右鍵單擊Frame后彈出的菜單中選擇Find Conversation, 但這種方法有可能會造成丟包,因此還是推薦使用第一種方法。找到了port就幾乎相當于找到了出問題的連接。當然,對于不同時間點,同樣的port有可能會是兩個不同的連接,因為上一個連接關掉后,下一個連接有可能重用這個port。按照port過濾后,從reset 開始順序往前看。5. 在Netmon中我們還可以看到一些protocol是TDS的Frame。TDS的好處是在查看Frame Details時,可以看到更多的信息。例如我們查看一個TDS:SQLBatch的TDS Frame Detail,可以看到SQL的statement:對于當SQL Server使用的端口不是默認的1433時,如何顯示TDS frames,可以參考下面這篇博文:How to enable TDS parser to display TDS frames when SQLServer is listening on port other than default 14336. 除了在4中介紹的通過port進行過濾,最常用的filter還有ipv4.address==<xxx.xx.xx.xx>除直接在filter中寫入之外還有一種添加filter的方法,以過濾出所有flag是reset的frames為例來說明:那么我可以在某個reset frame的details中找到這個flag,在右鍵單擊彈出的菜單中選擇Add SelectedValue to Display filter:7. 一個SQL Server的包會在網絡傳輸過程中會經過以下幾層:NIC(網卡物理設備)—》NDIS(網卡驅動)—》TCPIP (操作系統)—》afd(操作系統后臺線程,每一個tcp port上都會有一個afd)—》SQL Server—》for authentication(調用 sspi—lssas—DC)Netmon所抓取的數據是在網卡驅動上面和TCPIP 下面的。所以Netmon所抓到的包是不能作為網卡真正發出去的包的,需要比較發出去的包和客戶端收到的包來判斷網卡或路由等是否進行了切包。8. 在chimney開啟時,抓到的包的信息有可能是不全的,如果在查看時發現包的行為很奇怪,懷疑丟包,那么一定要請客戶關閉chimney(以管理員運行CMD并且執行命令:netsh interface tcp set global chimney=disabled)后重新收集Netmon。 接下來,我們就來討論一下今天的案例。當具備了以上Netmon的知識和技巧后,在處理這個案例中所收到的Netmon數據就非常有針對性了。將客戶端的Netmon數據按照端口號filter后,可以很清楚的看到,客戶端一直面對著重傳的問題。16是12的重傳,17也是12的重傳,甚至18,19,20:

那么我們來看一下12的詳細信息:

可以看到這個包的長度是4096。那么16呢?查看16的詳細信息時我們發現,16的長度變成了1460:

在重傳時包的長度變小說明,由于之前大包無法傳遞,傳遞的包的大小被自動調小了。繼續查看17,18,19和20會發現這幾個包的長度都是1460。很明顯,這是一個大包發不過去導致重傳的問題。 那么現在問題來了,為什么第一次大包發不過去,之后以小包重傳也不成功呢? 查看server端Netmon后會發現,這是由于傳輸4096的包被切成1460+1460+1172后,server端只收到了最后一個包。接下來,由于sequence斷了,server端會認為這是一個不合法的包,因為中間的信息缺失了。之后這個連接就在server端直接被block了(所以我們收到的錯誤信息是“connection forcibly close by the remote server”),因此后續re-transmit的1460的包server再也沒有接收過(后續重傳全都失敗了)。 最終問題的解決辦法是關閉網卡上的兩個選項:Jumbo Packet和Large Send Offload(LSO)。

開啟Jumbo Packet表示支持大包,關閉則表示從NIC發出的包采用標準大小1500。 如果LSO是開啟的,切包會由網卡驅動(NDIS)完成。如果LSO關閉,切包會由操作系統(TCP Stack)完成,切成多大由Jombo Packet的設置來決定。我們通常不建議由網卡來切包,因為網卡切包與網絡環境有關,可能會導致包的大小不固定,建議還是由操作系統來進行切包。將這兩個選項關閉后,傳輸包的大小均為標準大小1500,就解決了這個大包被切,重傳失敗的問題。 這就是今天的分享,更多SQL Server案例學習請持續關注本博客的更新。server端Netmon和client端netmonJumbo Packet:巨型包
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久91亚洲人成电影网站| 日韩欧美在线视频观看| 国产精品igao视频| 动漫精品一区二区| 亚洲www永久成人夜色| 亚洲成人av片在线观看| 久久91超碰青草是什么| 国产精品91久久| 亚洲精品中文字幕av| 精品久久久香蕉免费精品视频| 欧美一级大片在线观看| 国产精品视频男人的天堂| 日韩有码在线观看| 91免费电影网站| 国产91精品久| 91精品国产91久久久久福利| 超碰精品一区二区三区乱码| 精品国产一区二区三区久久久狼| 久久99精品久久久久久青青91| 欧美激情视频在线观看| 国产精品黄色影片导航在线观看| 亚洲影院色在线观看免费| 91精品国产高清自在线看超| 91人人爽人人爽人人精88v| 日本久久久久久| 91av在线国产| 欧美精品在线视频观看| 日韩成人av在线| 欧美日韩国产综合视频在线观看中文| 精品亚洲va在线va天堂资源站| 亚洲在线免费视频| 日韩欧美国产激情| 78m国产成人精品视频| 欧美一级视频免费在线观看| 亚洲综合视频1区| 欧美国产在线视频| 国模私拍一区二区三区| 欧美午夜久久久| 91免费欧美精品| 夜夜嗨av色一区二区不卡| 国产丝袜精品视频| 亚洲精品自拍第一页| 日韩久久精品成人| 亚洲va男人天堂| 国产精品男人爽免费视频1| 亚洲男人天堂网站| 中文字幕亚洲欧美一区二区三区| 91亚洲精品一区二区| 91在线免费观看网站| 久久久免费观看视频| 综合国产在线视频| 色偷偷偷亚洲综合网另类| 日韩av在线导航| 日韩精品久久久久久福利| 色天天综合狠狠色| 日韩在线视频线视频免费网站| 亚洲a级在线播放观看| 精品成人69xx.xyz| 亚洲国产精品热久久| 色综合久久久久久中文网| 国产精品影片在线观看| 91欧美视频网站| 成人h视频在线观看播放| 欧美精品国产精品日韩精品| 国产精品中文在线| 国产女同一区二区| 日韩视频免费中文字幕| 日韩美女在线看| 韩国欧美亚洲国产| 欧美放荡办公室videos4k| 亚洲午夜精品久久久久久久久久久久| 欧美成人性色生活仑片| 欧美国产亚洲精品久久久8v| 亚洲欧洲视频在线| 国产精品电影网| 国产91精品不卡视频| 久久久国产精品一区| 亚洲在线免费观看| 欧美激情一区二区三区高清视频| 97久久国产精品| 91精品综合久久久久久五月天| 成人网址在线观看| 久久久极品av| 国产精品一区二区三| 久久视频国产精品免费视频在线| 国产日产欧美a一级在线| 亚洲性视频网址| 精品偷拍各种wc美女嘘嘘| 国产成人在线视频| 成人在线播放av| 欧美交受高潮1| 亚洲热线99精品视频| 欧美国产亚洲精品久久久8v| 日本久久久久久| 欧美日韩国产精品| 亚洲视频在线视频| 日韩免费高清在线观看| 亚洲free性xxxx护士白浆| 国产成人精品在线播放| 国产成人精品av| 久久精品国产69国产精品亚洲| 欧美日韩加勒比精品一区| 国产成人精品视频在线观看| 久久久中文字幕| 日韩成人av网址| 欧美成人免费观看| 最近的2019中文字幕免费一页| 裸体女人亚洲精品一区| 久久69精品久久久久久久电影好| 日本午夜精品理论片a级appf发布| 91精品国产自产在线老师啪| 日韩av三级在线观看| 91伊人影院在线播放| 亚洲人成网站在线播| 一本色道久久综合狠狠躁篇的优点| 国产中文字幕亚洲| 国产亚洲激情视频在线| 国产精品欧美久久久| 久久夜精品香蕉| 中文日韩在线观看| 自拍偷拍亚洲欧美| 欧美性xxxx在线播放| 日韩欧美精品网站| 九九精品视频在线观看| 亚洲最新在线视频| 日韩精品丝袜在线| 亚洲欧美日韩国产成人| 91av视频在线播放| 午夜精品在线观看| 中文字幕在线观看日韩| 国产精品久久久久久久久久久久久久| 91爱视频在线| 成人免费在线视频网站| 久久免费视频网| 亚洲精品狠狠操| 亚洲欧美成人一区二区在线电影| 日韩av免费在线看| 欧美专区国产专区| 国产欧美欧洲在线观看| 国产精品美女久久久久久免费| 亚洲伊人一本大道中文字幕| 欧美在线免费看| 亚洲自拍高清视频网站| 久久免费视频在线| 成人欧美一区二区三区黑人孕妇| 欧美日韩高清在线观看| 欧美成人免费视频| 97久久精品在线| 日韩亚洲精品视频| 亚洲视频综合网| 在线观看欧美www| 国产精品成人在线| 国产精品18久久久久久麻辣| 国产欧美精品一区二区| 91精品成人久久| 亚洲女同精品视频| 欧美成人久久久| 日本精品va在线观看| 成人免费在线视频网站| 日韩精品高清在线| 亚洲精品乱码久久久久久金桔影视| 国内免费久久久久久久久久久| 日韩中文字幕在线精品| 91视频免费网站|