如何修改windows服務器最大的tcp連接數

如何修改windows服務器最大的tcp連接數

如何修改windows服務器最大的tcp連接數

 

資料來源: http://fanli7.net/a/caozuoxitong/Windows/20111028/136849.html

 

在做性能測試測試時候,如果被測試的系統頁面很簡單,並且性能很好,這樣會導致壓力機得tcp鏈接數不夠而導致如下錯誤:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\TcpTimedWaitDelay to 30
and HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\MaxUserPort to 65534
and rebooting the machine
See the readme.doc file for more information

通過百度搜索介紹最多的還是讓修改TimedWaitDelay 和MaxUserPort這2個值,其中是將TimedWaitDelay修改的相對小點,可以根據實際情況來定,

同時將MaxUserPort這個值修改大些,但是修改完並重啟機器後,該問題仍然存在,通過多方查資料,然後對一些注冊表進行修改:

[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters] 
TcpNumConnections = 0x00fffffe (Default = 16,777,214) 

以上注冊表資訊配置單機的最大允許的TCP連接數,默認為 16M。這個數值看似很大,這個並不是限制最大連接數的唯一條件,還有其他條件會限制到TCP 連接的最大連接數。 
最大動態埠數 
TCP
客戶端和服務器連接時,客戶端必須分配一個動態埠,默認情況下這個動態埠的分配範圍為 1024-5000 ,也就是說默認情況下,客戶端最多可以同時發起3977 Socket 連接。我們可以修改如下注冊表來調整這個動態埠的範圍 
[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters] 
MaxUserPort = 5000 (Default = 5000, Max = 65534) 

最大TCB 數量 

系統為每個TCP 連接分配一個TCP 控制塊(TCP control block or TCB),這個控制塊用於緩存TCP連接的一些參數,每個TCB需要分配 0.5 KBpagepool 0.5KB Non-pagepool,也就說,每個TCP連接會佔用 1KB 的系統內存。 

系統的最大TCB數量由如下注冊表設置決定 
[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters] 
MaxFreeTcbs = 2000 (Default = RAM dependent, but usual Pro = 1000, Srv=2000) 

Server版本,MaxFreeTcbs 的默認值為1000 64M 以上物理內存) 

Server 版本,這個的默認值為 2000 

也就是說,默認情況下,Server 版本最多同時可以建立並保持2000TCP 連接。 
最大TCB Hash table 數量 

TCB 是通過Hash table 來管理的,下面注冊表設置決定了這個Hash table 的大小 

HKEY_LOCAL_MACHINE \System \CurrentControlSet \services \Tcpip \Parameters] 
MaxHashTableSize = 512 (Default = 512, Range = 64-65536) 

這個值指明分配 pagepool 內存的數量,也就是說,如果MaxFreeTcbs = 1000 , pagepool 的內存數量為 500KB 

那麼 MaxHashTableSize 應大於 500 才行。這個數量越大,則Hash table 的冗餘度就越高,每次分配和查找 TCP  連接用時就越少。這個值必須是2的冪,且最大為65536. 

    MaxUserPort = 65534 (Decimal) 
    MaxHashTableSize = 65536 (Decimal) 
    MaxFreeTcbs = 16000 (Decimal) 

 

 

 

 

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *