Share via


檔案伺服器的效能調整

您應該選取適當的硬體,以滿足預期的檔案伺服器負載,並考量平均負載、尖峰負載、容量、成長計畫和回應時間。 硬體瓶頸限會制軟體調整的效果。

用戶端的一般微調參數

下列 REG_DWORD 登錄設定可能會影響與 SMB 檔案伺服器互動的用戶端電腦效能:

  • ConnectionCountPerNetworkInterface

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\ConnectionCountPerNetworkInterface
    

    適用於 Windows 10、Windows 8.1、Windows 8、Windows Server 2022、Windows Server 2016、Windows Server 2012 R2 和 Windows Server 2012

    預設值是 1,而我們強烈建議使用預設值。 有效範圍是 1-16。 每個介面要與非 RSS 介面的伺服器建立的連線數目上限。

  • ConnectionCountPerRssNetworkInterface

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\ConnectionCountPerRssNetworkInterface
    

    適用於 Windows 10、Windows 8.1、Windows 8、Windows Server 2022、Windows Server 2016、Windows Server 2012 R2 和 Windows Server 2012

    預設值是 4,而我們強烈建議使用預設值。 有效範圍是 1-16。 每個介面要與 RSS 介面的伺服器建立的連線數目上限。

  • ConnectionCountPerRdmaNetworkInterface

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\ConnectionCountPerRdmaNetworkInterface
    

    適用於 Windows 10、Windows 8.1、Windows 8、Windows Server 2022、Windows Server 2016、Windows Server 2012 R2 和 Windows Server 2012

    預設值是 2,而我們強烈建議使用預設值。 有效範圍是 1-16。 每個介面要與 RDMA 介面的伺服器建立的連線數目上限。

  • MaximumConnectionCountPerServer

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\MaximumConnectionCountPerServer
    

    適用於 Windows 10、Windows 8.1、Windows 8、Windows Server 2022、Windows Server 2016、Windows Server 2012 R2 和 Windows Server 2012

    預設值是 32,有效範圍是 1-64。 在所有介面中要與執行 Windows Server 2012 的單一伺服器建立的連線數目上限。

  • DormantDirectoryTimeout

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\DormantDirectoryTimeout
    

    適用於 Windows 10、Windows 8.1、Windows 8、Windows Server 2022、Windows Server 2016、Windows Server 2012 R2 和 Windows Server 2012

    預設值是 600 秒。 伺服器目錄控點對目錄租用保持開啟狀態的時間上限。

  • FileInfoCacheLifetime

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\FileInfoCacheLifetime
    

    適用於 Windows 10、Windows 8.1、Windows 8、Windows 7、Windows Vista、Windows Server 2022、Windows Server 2016、Windows Server 2012 R2、Windows Server 2012、Windows Server 2008 R2 和 Windows Server 2008

    預設值是 [10 秒]。 檔案資訊快取逾時期間。

  • DirectoryCacheLifetime

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\DirectoryCacheLifetime
    

    適用於 Windows 10、Windows 8.1、Windows 8、Windows 7、Windows Vista、Windows Server 2022、Windows Server 2016、Windows Server 2012 R2、Windows Server 2012、Windows Server 2008 R2 和 Windows Server 2008

    預設值是 [10 秒]。 這是目錄快取逾時。

    注意

    此參數可控制沒有目錄租用時的目錄中繼資料快取。

    注意

    Windows 10 版本 1803 中的已知問題會影響 Windows 10 快取大型目錄的能力。 將電腦升級至 Windows 10 版本 1803 之後,您可以存取包含上千個檔案和資料夾的網路共用,並開啟位於該共用上的文件。 在這兩項作業中,會感受到顯著的延遲。

    若要解決此問題,請安裝 Windows 10 版本 1809 或更新版本。

    若要因應此問題,請將 DirectoryCacheLifetime 設定為 0

    此問題會影響下列的 Windows 10 版本:

    • Windows 10 企業版 (版本 1803)
    • Windows 10 工作站專業版 (版本 1803)
    • Windows 10 專業教育版 (版本 1803)
    • Windows 10 專業版 (版本 1803)
    • Windows 10 教育版 (版本 1803)
    • Windows 10 家用版 (版本 1803)
  • DirectoryCacheEntrySizeMax

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\DirectoryCacheEntrySizeMax
    

    適用於 Windows 10、Windows 8.1、Windows 8、Windows 7、Windows Vista、Windows Server 2022、Windows Server 2016、Windows Server 2012 R2、Windows Server 2012、Windows Server 2008 R2 和 Windows Server 2008

    預設值是 64 KB。 這是目錄快取項目的大小上限。

  • FileNotFoundCacheLifetime

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\FileNotFoundCacheLifetime
    

    適用於 Windows 10、Windows 8.1、Windows 8、Windows 7、Windows Vista、Windows Server 2022、Windows Server 2016、Windows Server 2012 R2、Windows Server 2012、Windows Server 2008 R2 和 Windows Server 2008

    預設值是 5 秒。 找不到檔案的快取逾時期間。

  • CacheFileTimeout

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\CacheFileTimeout
    

    適用於 Windows 8.1、Windows 8、Windows Server 2012、Windows Server 2012 R2 和 Windows 7

    預設值是 [10 秒]。 此設定可控制在應用程式關閉檔案的最後一個控制代碼之後,重新導向器會保留檔案快取資料的時間長度 (以秒為單位)。

  • DisableBandwidthThrottling

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\DisableBandwidthThrottling
    

    適用於 Windows 10、Windows 8.1、Windows 8、Windows 7、Windows Vista、Windows Server 2022、Windows Server 2016、Windows Server 2012 R2、Windows Server 2012、Windows Server 2008 R2 和 Windows Server 2008

    預設值是 0。 根據預設,在某些情況下,SMB 重新導向器會對高延遲網路連線的輸送量進行節流,以避免網路相關逾時。 若將此登錄值設為 1 則會停用此節流,進而透過高延遲網路連接來達到更高的檔案轉送輸送量。

  • DisableLargeMtu

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\DisableLargeMtu
    

    適用於 Windows 10、Windows 8.1、Windows 8、Windows 7、Windows Vista、Windows Server 2022、Windows Server 2016、Windows Server 2012 R2、Windows Server 2012、Windows Server 2008 R2 和 Windows Server 2008

    預設值是 0 (僅適用於 Windows 8)。 在 Windows 8 中,SMB 重新導向器會轉送每個要求 1 MB 的承載,以提升檔案轉送速度。 若將此登錄值設定為 1,則要求大小限制為 64 KB。 套用此設定之前,您應該評估其影響。

  • RequireSecuritySignature

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\RequireSecuritySignature
    

    適用於 Windows 10、Windows 8.1、Windows 8、Windows 7、Windows Vista、Windows Server 2022、Windows Server 2016、Windows Server 2012 R2、Windows Server 2012、Windows Server 2008 R2 和 Windows Server 2008

    預設值是 0,並停用 SMB 簽署。 將此值變更為 1 可啟用所有 SMB 通訊的 SMB 簽署,以防止 SMB 與停用 SMB 簽署的電腦通訊。 SMB 簽署可能增加 CPU 成本和網路往返,但可協助封鎖中間人攻擊。 如果 SMB 簽署並非必要,請確定所有用戶端和伺服器上的此登錄值均為 0。

    如需詳細資訊,請參閱 SMB 簽署的基本概念

  • FileInfoCacheEntriesMax

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\FileInfoCacheEntriesMax
    

    適用於 Windows 10、Windows 8.1、Windows 8、Windows 7、Windows Vista、Windows Server 2022、Windows Server 2016、Windows Server 2012 R2、Windows Server 2012、Windows Server 2008 R2 和 Windows Server 2008

    預設值是 64,有效範圍是 1 至 65536。 此值用來決定用戶端可以快取的檔案中繼資料數量。 提高此值可降低網路流量,並且在存取大量檔案時提升效能。

  • DirectoryCacheEntriesMax

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\DirectoryCacheEntriesMax
    

    適用於 Windows 10、Windows 8.1、Windows 8、Windows 7、Windows Vista、Windows Server 2022、Windows Server 2016、Windows Server 2012 R2、Windows Server 2012、Windows Server 2008 R2 和 Windows Server 2008

    預設值是 16,有效範圍是 1 至 4096。 此值用來決定用戶端可以快取的目錄資訊數量。 提高此值可降低網路流量,並且在存取大量目錄時提升效能。

  • FileNotFoundCacheEntriesMax

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\FileNotFoundCacheEntriesMax
    

    適用於 Windows 10、Windows 8.1、Windows 8、Windows 7、Windows Vista、Windows Server 2022、Windows Server 2016、Windows Server 2012 R2、Windows Server 2012、Windows Server 2008 R2 和 Windows Server 2008

    預設值是 128,有效範圍是 1 至 65536。 此值用來決定用戶端可以快取的檔案名稱資訊數量。 提高此值可降低網路流量,並且在存取大量檔案名稱時提升效能。

  • MaxCmds

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\MaxCmds
    

    適用於 Windows 10、Windows 8.1、Windows 8、Windows 7、Windows Vista、Windows Server 2022、Windows Server 2016、Windows Server 2012 R2、Windows Server 2012、Windows Server 2008 R2 和 Windows Server 2008

    預設值是 15。 此參數可限制一個工作階段的未處理要求數目。 提高此值可使用更多記憶體,但可藉由啟用更深的要求管線來提升效能。 搭配 MaxMpxCt 提高此值,也可以排除由於大量未處理長期檔案要求所造成的錯誤,例如 FindFirstChangeNotification 呼叫。 此參數不會影響與 SMB 2.0 伺服器的連線。

  • DormantFileLimit

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\DormantFileLimit
    

    適用於 Windows 10、Windows 8.1、Windows 8、Windows 7、Windows Vista、Windows Server 2022、Windows Server 2016、Windows Server 2012 R2、Windows Server 2012、Windows Server 2008 R2 和 Windows Server 2008

    預設值為 1023。 此參數可指定在應用程式關閉檔案之後,共用資源上應該保持開啟的檔案數目上限。

用戶端微調範例

用戶端電腦的一般微調參數可將電腦最佳化,以便存取遠端檔案共用,尤其是透過某些高延遲網路 (例如分公司、跨資料中心通訊、家庭辦公室,以及行動寬頻) 存取。 在所有電腦上,這些設定並不是最佳或適當的。 套用個別設定之前,您應該評估其影響。

參數 預設
DisableBandwidthThrottling 1 0
FileInfoCacheEntriesMax 32768 64
DirectoryCacheEntriesMax 4096 16
FileNotFoundCacheEntriesMax 32768 128
MaxCmds 32768 15

從 Windows 8 開始,您可以使用 Set-SmbClientConfigurationSet-SmbServerConfiguration Windows PowerShell Cmdlet 來設定其中許多 SMB 設定。 使用 Windows PowerShell 也可以設定僅限登錄的設定。

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" RequireSecuritySignature -Value 0 -Force