不規則的網際網路中斷:某些圖像和 JS 未載入
第一次使用 ServerFault,我遇到了一個不錯的小難題。
幾個月以來,我們的網際網路連接一直存在問題。
環境:
Servers: 2 Terminal Servers as an RDSFarm running Windows Server 2008 R2 Browser: Internet Explorer 9 Test/debug browser: Chrome AntiVirus: Avast 7.0.1455
問題:
不定期地,網站拒絕載入,給出一個錯誤說頁面不可訪問,或者某些圖像沒有完全載入。此外,在檢查後,多個 .js 文件無法載入。
調查結果和我們嘗試了什麼:
第一印象:
當我在該時間間隔內使用 Chrome 時,該站點在刷新後返回 net:: 錯誤 101 或錯誤 103。在其他時候,如果它沒有給出錯誤,則幾個圖像不可見並顯示 X 圖像。IE 只是說頁面無法顯示。
使用 Chrome 開發者工具:
它在控制台中顯示幾個資源不可用,但是當我右鍵點擊失去的圖像並選擇“顯示圖片”時,它們會顯示出來。當我通過直接 URL 打開圖片時,它們也會顯示。
通過 Chrome 開發者工具進行審計:
當頁面處於錯誤狀態時,我對其進行了審核,發現一些 .js 文件沒有與一些 .png、.jpg 和 .gif 文件一起載入。為 Chrome 和 IE 載入不同的圖像。
混淆的 JS 文件和 Avast:
在檢查之後,我發現大多數 .js 文件都是經過混淆的 JS 文件,而且由於我們執行的是 Avast 7.0.1455,我想知道 Web Shield 是否沒有搞砸。
再說一次,它只發生在第一個 TS 上,而不是第二個。
所以我關閉了 WebShield 一天,看看是否有任何改善。它沒有。回到原點。
文件沒有記憶體過期:
其中一些未載入的文件被指示沒有記憶體過期。
記憶體:
我們的一位系統管理員不久前將 IE 記憶體大小更改為 10MB,我認為這可能是問題的根源。他把它改回了 65MB 左右,但人們仍然會遇到圖像問題。它也仍然發生在 1 TS 和 Chrome 中,所以我認為指示記憶體的組策略不會影響 Chrome,不是嗎?
網路問題: 我還認為可能是網路或路由問題,但兩台 TS 伺服器都在同一個組合 NIC 上,而另一台執行正常。
幫助!
如果有人對在哪裡尋找問題有一些提示,或者需要更多資訊,請幫助我。這已經困擾了我好幾個星期了。
編輯和更新
問題仍然存在,並且僅在我們的 2 台終端伺服器上。
這是我和一位同事到目前為止所做的:
- 在一台伺服器上關閉防病毒軟體一天,看看它是否沒有發生。 問題還是出現了。
- 檢查了 MTU-size
這是預設設置(忘記了確切的值:P) 問題仍然存在。
- 已安裝 Windows 更新,IE10 問題仍然存在。
- 檢查是否有任何代理。
AV 將代理作為所謂的 WebShield。我們在一台伺服器上禁用了該服務和程序一天。 問題還是出現了。
- 重新安裝了 NIC 團隊,因為它變得一團糟。 *(還重新安裝了網卡驅動程序)*問題仍然存在。
- 檢查組策略 *顯然在兩個終端伺服器中,有一個本地機器策略在 IE 中啟用了偏好模式,它完成了一些奇怪的自定義。禁用它,並且…*問題仍然存在。
現在,人們甚至在從 SharePoint 上傳和下載文件時遇到問題,而且我們使用的許多網站都因此而無法執行。
預感
這與 WebShield 在發現異常時斷開連接有關,但在 AV 關閉時不應該發生這種情況。
可能是重定向以某種方式搞砸了,或者記憶體有問題。奇怪的是,同樣的問題出現在 Chrome 以及 IE9 和 IE10 中。
如果有人有任何想法,將不勝感激。
感謝 HopelessN00b 幫助我!
更新:
在我們的原始 TS 之一上,我們在事件查看器中遇到了一些錯誤:
Error: (04/04/2013 08:44:42 AM) (Source: Application Error) (User: ) Description: Faulting application name: iexplore.exe, version: 9.0.8112.16470, time stamp: 0x510c8801 Faulting module name: MSHTML.dll, version: 9.0.8112.16470, time stamp: 0x510c9046 Exception code: 0xc0000005 Fault offset: 0x002d0174 Faulting process id: 0x21728 Faulting application start time: 0xiexplore.exe0 Faulting application path: iexplore.exe1 Faulting module path: iexplore.exe2 Report Id: iexplore.exe3
有時會出現這種情況,但顯然這是因為某些 WYSE 終端太舊(希望很快用 Raspberry Pi 替換它們)。
Error: (04/04/2013 11:21:46 AM) (Source: TermDD) (User: ) Description: The Terminal Server security layer detected an error in the protocol stream and has disconnected the client. Client IP: [IP REDACTED].
希望這可以幫助。
嘗試不綁定 NIC。只設置一個 NIC,看看是否仍然有效。如果它確實確保您的交換機埠配置和 Teaming 配置對齊。
要在沒有準確錯誤消息的情況下診斷問題,您需要執行:
- 客戶端的 tcpdump(wireshark 顯示效果很好)
- 伺服器端的 tcpdump(查看伺服器實際發送的內容)。
- 等待問題發生
- 檢查數據包,並查看通信中斷的位置。如果您需要幫助檢查跟踪,請將其寫入文件。
我懷疑你會發現一個未回答的 DNS 查詢。如果您的 ISP 通過代理過濾您的流量,您應該能夠在流量中找到它的踪跡,尤其是通過比較伺服器端擷取與客戶端擷取。
如果出現網路質量問題,或許可以通過traceroute更直覺的觀察到。如果網路轉儲顯示通信順利,但瀏覽器無法顯示提供的數據,那麼您的問題是終端伺服器上的桌面問題。
您應該在使瀏覽器連接不起作用的終端伺服器上執行數據包擷取。