簡體   English   中英

檢查與服務器的TCP連接數

[英]Check number of TCP connections to the server

我們有兩個應用程序服務器。 s1和s2。 對於到達s1的每個請求,它都會調用s2公開的服務。 s1正在運行端口8585而s2正在端口8989

  • 我們已經在s1上實現了Http連接池,因此在與s2進行通信時將重新使用連接。 為此,我們使用apache httpclient庫和PoolingHttpClientConnectionManager進行連接輪詢。
  • HttpClient實例僅在啟動時創建一次,並在調用s2公開的服務時共享。
  • 創建HttpClient時,我們已將HttpClient的最大連接數配置為50

如何檢查連接輪詢是否正常工作?

我們在s2中添加了10秒的延遲,因此每個請求都在等待10秒才能獲得響應。

我們正在嘗試使用Jmeter生成對服務器s1的200個並發請求,並按照netstat命令檢查由服務器s1到s2建立的連接數

while [ 1 ] ; do netstat -apnt | grep -E '8585.*ESTABLISHED' ;echo "---";sleep 3; done

它具有隨機行為。 有時連接計數顯示100,有時顯示65或其他任何數字。

用awk“確定”您的netstat輸出:

netstat -antp | awk '$6 == "ESTABLISHED" { split ($5,prt,":");if ( prt[2] == "8585" ) { cnt++ } } END { print cnt }'

這將獲取netstat輸出,然后檢查第6個定界數據(具有默認空間),並根據ESTABLISHED進行檢查。 如果滿足條件,則使用:將第四個定界數據分割為一個陣列端口。 第二個元素將具有連接端口,因此將對8585進行檢查。如果滿足此條件,則連接計數將增加。 在awk腳本的末尾,將打印最終的cnt變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM