jmeter里的连接数_Jmeter之连接问题
Connection reset
報錯原理
服務器端因為某種原因關閉了Connection,而客戶端依然在讀寫數據,此時服務器會返回復位標志“RST”,然后此時客戶端就會提示“java.net.SocketException: Connection reset”。
產生原因
服務器的并發連接數超過了其承載量,服務器會將其中一些連接關閉;
防火墻的問題
如果網絡連接通過防火墻,而防火墻一般都會有超時的機制,在網絡連接長時間不傳輸數據時,會關閉這個TCP的會話,關閉后在讀寫,就會導致異常。 如果關閉防火墻,解決了問題,需要重新配置防火墻,或者自己編寫程序實現TCP的長連接。實現TCP的長連接,需要自己定義心跳協議,每隔一段時間,發送一次心跳協議,雙方維持連接。
解決方案:調整TCP連接數(未實施)
Windows 下單機最大TCP連接數
調整系統參數來調整單機的最大TCP連接數,Windows 下單機的TCP連接數有多個參數共同決定:
以下都是通過修改注冊表[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters]
1.最大TCP連接數 TcpNumConnections
2.TCP關閉延遲時間 TCPTimedWaitDelay (30-240)s
3.最大動態端口數 MaxUserPort (Default = 5000, Max = 65534) TCP客戶端和服務器連接時,客戶端必須分配一個動態端口,默認情況下這個動態端口的分配范圍為 1024-5000 ,也就是說默認情況下,客戶端最多可以同時發起3977 Socket 連接
4.最大TCB 數量 MaxFreeTcbs
系統為每個TCP 連接分配一個TCP 控制塊(TCP control block or TCB),這個控制塊用于緩存TCP連接的一些參數,每個TCB需要分配 0.5 KB的pagepool 和 0.5KB 的Non-pagepool,也就說,每個TCP連接會占用 1KB 的系統內存。
非Server版本,MaxFreeTcbs 的默認值為1000 (64M 以上物理內存)Server 版本,這個的默認值為 2000。也就是說,默認情況下,Server 版本最多同時可以建立并保持2000個TCP 連接。
最大TCB Hash table 數量 MaxHashTableSize TCB 是通過Hash table 來管理的。
這個值指明分配 pagepool 內存的數量,也就是說,如果MaxFreeTcbs = 1000 , 則 pagepool 的內存數量為 500KB那么 MaxHashTableSize 應大于 500 才行。這個數量越大,則Hash table 的冗余度就越高,每次分配和查找 TCP 連接用時就越少。這個值必須是2的冪,且最大為65536.
IBM WebSphere Voice Server 在windows server 2003 下的典型配置
MaxUserPort = 65534 (Decimal)
MaxHashTableSize = 65536 (Decimal)
MaxFreeTcbs = 16000 (Decimal)
這里我們可以看到 MaxHashTableSize 被配置為比MaxFreeTcbs 大4倍,這樣可以大大增加TCP建立的速度。
Connection refused: connect
原因:具有ip地址的機器不能找到
解決辦法:ping ip:port是否通暢
Socket is closed
己方主動關閉了連接后,仍然進行讀寫操作
總結
以上是生活随笔為你收集整理的jmeter里的连接数_Jmeter之连接问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++学习之路 | PTA乙级—— 10
- 下一篇: C++学习之路 | PTA乙级—— 10