如何修改windows伺服器最大的tcp連線數

2021-08-26 08:05:36 字數 2043 閱讀 6894

在做效能測試測試時候,如果被測試的系統頁面很簡單,並且效能很好,這樣會導致壓力機得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

同時將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 kb的pagepool 和 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 版本最多同時可以建立並保持2000個tcp 連線。

最大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)

這裡我們可以看到 maxhashtablesize 被配置為比maxfreetcbs 大4倍,這樣可以大大增加tcp建立的速度。

如何修改windows伺服器最大的tcp連線數

在做效能測試測試時候,如果被測試的系統頁面很簡單,並且效能很好,這樣會導致壓力機得tcp鏈結數不夠而導致如下錯誤 hkey local machine system currentcontrolset services tcpip parameters tcptimedwaitdelay to 30...

Gitlab伺服器修改url如何修改專案path

本地搭建的gitlab 伺服器,在 etc gitlab gitlab.rb 中 external url 通常是區域網ip的形式。如下所示 external url 如果遇到本地的ip位址改變後,此時的 external url也應對要做出對應的修改。在修改後,在網頁中,看到專案的path路徑,有...

Windows伺服器如何做安全 ?

windows安全相對於linux的無桌面操作,要方便很多。但同時,windows伺服器相對來說更容易被入侵。那麼,對於windows系統的安全防入侵該如果去操作呢?1 系統補丁要更新!2 不要讓不信任的人員獲取賬號密碼 3 刪除禁用不必要的系統賬戶 4 更改administrator賬戶名稱 5 ...