將大檔案複製到遠端伺服器會導致實體記憶體不足

將大檔案複製到遠端伺服器會導致實體記憶體不足

我有一個奇怪的問題,似乎是最近開始的。

當我將一個大檔案(大約 6GB)從筆記型電腦複製到我們的一台舊檔案伺服器時,幾秒鐘後伺服器就會耗盡記憶體。

這只是最近才開始的,也許是從星期二補丁開始的,儘管我不能確定。

這台伺服器是一台 Windows 2000 sp4 機器,它是一台帶有 1GB RAM 的 Dell 2950(注意:我確信這台伺服器有超過 1GB!,直到一天結束時我才能關閉它,我才能實際檢查), 3GHz Xeon 處理器、raid 10 中的4 個250Gb 7.5k RPM SATA 驅動器以及連接到英特爾託管交換器上1GB 連接埠的1 個千兆位元NIC。


(顯然我無法發布圖像,因此必須提供連結)

複製過程中的記憶體使用圖+訊息

一旦我停止複製,記憶體就會立即釋放:

複製停止後的記憶體使用圖+訊息


我已經刪除了沒有影響的防毒軟體。我已將“Microsoft 網路的文件和列印共用”選項變更為平衡。

我們在 raid 10 中還有另一台伺服器,Windows 2000 SP4,配備 2GB RAM、2.8Ghz Intel 四核心、6 個 300Gb 15k SAS。

當我在此處複製相同的 6GB 檔案時,可用記憶體量不會改變。

伺服器運行時我還可以查看其他內容嗎?由於它正在使用中並且並未真正受到小文件副本的影響,因此我還無法重新啟動它。

這是我在伺服器記憶體不足時打開的一些效能計數器的螢幕截圖。

複製期間的 Perfmon 計數器


謝謝加雷斯

答案1

我遇到了同樣的問題。

嘗試在執行 Windows Server 2008 的 64 位元伺服器上進行 P2V 轉換。

在 32 位元伺服器上執行 P2V 轉換或檔案複製不會出現此問題,且記憶體使用量保持合理。

然後嘗試將VMDK檔案複製到目標VMWare伺服器也有同樣的問題。

此頁面準確描述了我所看到的內容:

http://blogs.technet.com/askperf/archive/2007/05/08/slow-large-file-copy-issues.aspx

根據我的工作,AM ESEUtil 似乎是可行的方法。它沒有我預期的那麼快,但也沒有讓 Windows 感到驚訝。

Windows FTP 用戶端在將檔案移至目標位置之前使用 C:\ 上的暫存檔案。謹防! :-)

這是非常令人沮喪。

答案2

我知道這有點痛苦,但是您嘗試過第 3 方文件複製實用程式嗎?有時,Windows 在檔案複製方面往往比較遲鈍/緩慢。 Lifehacker 列出了這些實用程式的前 5 名,嘗試其中之一,看看您是否仍然遇到相同的問題。

http://lifehacker.com/5280976/ Five-best-alternative-file-copiers

另外,就像兩人所說,檢查您的虛擬記憶體設定。最佳實踐是頁面檔案應該是記憶體的 x1.5(即 1 GB mem = 1024 MB;1024*1.5 = 1536 MB 頁面檔案)

答案3

W2K 上的網路檔案複製進程存在已知問題 - 如果遠端系統清空寫入快取的速度不能快於檔案資料通過網路到達的速度,那麼它將穩定地消耗伺服器上的所有實體內存,如果檔案夠大。馬克·魯西諾維奇 (Mark Russinovich) 有一些關於這種情況可能發生的方式的細節在本文中關於 Windows Vista 文件複製機制所做的變更。您發布的效能圖看起來像這個問題,我過去也曾見過這種行為,我的目標系統的磁碟速度非常慢,網路速度很快。

然而,即使您的目標作業系統有點舊,硬體也不是那麼弱,並且具有 4x7.2K SATA 驅動器的 RAID 10 設定應該適合 60 到 120Meg/秒的寫入速度,這明顯高於 39Meg/秒。正在報告您的副本。這裡奇怪的是,如果它是一個堅固的、配置良好的 GigE 鏈路,那麼對於像這樣的大檔案的持續副本,您的網路傳輸速率可能會達到 70Meg/秒(也許更高一點)。也就是說,如果有任何其他流量流入或流出客戶端或伺服器,或者(更有可能)該速率主要受到本機筆記型電腦硬碟速度的限制,則 38Meg/sec 並不異常。

無論如何,我都會檢查您的 RAID 10 是否確實正常 - 這裡的症狀會讓我懷疑它的寫入速度不能達到應有的速度。

答案4

也許您需要增強系統硬碟上的虛擬內存,而硬碟空間不足可能會導致上述問題。

而且,從邏輯的角度來看,伺服器在從一個檔案系統複製到另一個檔案系統時實際上並不需要將檔案儲存在記憶體中;它只是在檔案經過的記憶體中分配一個緩衝區。不過,根據複製檔案的方式,某些應用程式會先將檔案完全儲存在記憶體中,然後將其寫入磁碟。

嘗試使用像 FTP 這樣的協定 - 如果仍然發生這種情況,您可能應該檢查一些網路問題。

這裡有趣的問題是伺服器實際上如何儲存檔案 - 正如您所看到的,I/O 負載剛剛下降,這意味著它實際上並沒有將檔案寫入任何地方,只是將其緩衝在記憶體中。

相關內容