Windows 檔案共用上每個資料夾的最大(實際)檔案數?

Windows 檔案共用上每個資料夾的最大(實際)檔案數?

我支援將檔案儲存在 Windows Server 2003 SP2 檔案共用上的內部應用程式。由於目前配置儲存檔案的方式,一個資料夾中約有116,000 個文件(另一個資料夾中約有65,000 個文件,其他資料夾中的文件較少,但每個資料夾中仍有數千個) 。應用程式寫入檔案變得非常慢。

文件佈局是可配置的,所以我正在嘗試提出一個更好的計劃。有誰知道每個資料夾 SMB 在開始變得不可用之前可以處理多少項目?在這種情況下,它已經慢了很長一段時間了,但直到資料夾超過 100,000 個檔案時才開始變得難以忍受。

答案1

它更依賴頻寬和延遲(尤其是延遲),而不是檔案數量和用於枚舉目錄的演算法的擴展。我想,這就是我所說的,不存在「神奇數字」。

SMB協定是可怕因為需要很多很多的往返。文件數量加上雙倍的延遲,將是許多例如,速度慢兩倍多。

您無意中對 LAN、網路基礎設施的延遲以及伺服器電腦的 IO 子系統延遲進行了基準測試。顯然你已經找到了一個「神奇的數字」。我會削減該目錄,直到性能變得更好。沒有別的辦法了!

答案2

埃文是對的,沒有神奇的數字。這取決於應用程式和伺服器。升級到 Server 2008 將會有所幫助,而這是我要做的第一件事,只要客戶端是 vista 或更好,因為他們使用 SMBv2。我的共享包含 500,000 個文件,瀏覽起來就像垃圾一樣,但是由於用戶只使用提供的直接路徑,因此工作正常。在同一台伺服器上,我共享了 100,000 個文件,用戶對此沒有任何問題。

答案3

部分相關:

停止“上次訪問更新”

每當您造訪 NTFS 磁碟機上的資料夾時,Windows XP 都會更新該資料夾及其所有子資料夾,並帶有上次存取日期的時間戳記。有時,這會降低 Windows 效能。

若要變更此設置,請開啟 REGEDIT(開始 -> 執行 -> 'regedit')並導航至 HKEY_LOCAL_MACHINES\System\CurrentControlSet\Control\FileSystem

建立一個名為“NtfsDisableLastAccessUpdate”的新 DWORD 值(右鍵單擊 -> 新建 -> DDWORD 值)並將該值設為“1”

禁用不必要的命名約定

對於建立的每個文件,Windows XP 使用一個附加名稱以實現 MSDOS 相容性:8 個字元的名稱,後面跟著一個“.”,然後是 3 個字元的副檔名。如果您不打算僅使用 DOS 軟體,那麼這就是浪費記憶體。

若要變更此設置,請開啟 REGEDIT
導覽至 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem

將 NtfsDisable8dot3NameCreation 鍵的值變更為“1”

( 取自http://basiccoms.blogspot.com/2008/08/windows-xp-performance-tweaking-guide.html

相關內容