apache檢視程序tcp

2021-08-18 05:02:45 字數 3092 閱讀 9271

apache的執行模式有以下這幾種

先檢視apache的執行模式,檢視命令:

mod_so.c

httpd -m |grep prefork #這個是執行模式
cat /usr/local/apache2/conf/extra/httpd-mpm.conf #這裡面配置

serverlimit 1024

#伺服器apache最大的程序總數(參考,實際看maxclients)

startservers 10

#apache啟動時候預設開始的程序數

minspareservers 10

#最小的閒置程序數

maxspareservers 30

#最大的閒置程序數

maxclients 1024

#客戶端最大的程序總數

maxrequestsperchild 300

# 每個程序處理的最多請求數

netstat -nat

|grep -i

"80"

|wc -l

netstat -an會列印系統當前網路鏈結狀態,而grep -i 「80」是用來提取與80埠有關的連線的,wc -l進行連線數統計。

最終返回的數字就是當前所有80埠的請求總數。

2. 統計httpd協議連線數==或多少個程序數==

ps -ef

|grep httpd|wc -l

檢視apache當前==併發訪問數==:

netstat -an

| grep established | wc -l

檢視apache的併發請求數及其==tcp連線狀態==:linux命令:

netstat -n | awk '/^tcp/  end '

time_wait 8947 等待足夠的時間以確保遠端tcp接收到連線中斷請求的確認

fin_wait1 15 等待遠端tcp連線中斷請求,或先前的連線中斷請求的確認

fin_wait2 1 從遠端tcp等待連線中斷請求

established 55 代表乙個開啟的連線

syn_recv 21 再收到和傳送乙個連線請求後等待對方對連線請求的確認

closing 2 沒有任何連線狀態

last_ack 4 等待原來的發向遠端tcp的連線中斷請求的確認

其中的syn_recv表示正在等待處理的請求數;established表示正常資料傳輸狀態;time_wait表示處理完畢,等待超時結束的請求數。

tcp連線狀態詳解

在tcp/ip協議中,tcp協議提供可靠的連線服務,採用三次握手建立乙個連線。

第一次握手:建立連線時,客戶端傳送syn包(syn=j)到伺服器,並進入==syn_send==狀態,等待伺服器確認;

第二次握手:伺服器收到syn包,必須確認客戶的syn(ack=j+1),同時自己也傳送乙個syn包(syn=k),即syn+ack包,此時伺服器進入==syn_recv==狀態;

第三次握手:客戶端收到伺服器的syn+ack包,向伺服器傳送確認包ack(ack=k+1),此包傳送完畢,客戶端和伺服器進入==established==狀態,完成三次握手。

客戶端tcp狀態遷移:

closed->syn_sent->established->fin_wait_1->fin_wait_2->time_wait->closed

伺服器tcp狀態遷移:

closed->listen->syn_receive->established->close_wait->last_ack->closed

1. 檢視當前的連線數可以用:
ps aux | grep httpd | wc -l
##### 計算httpd占用記憶體的平均數:

ps aux|grep -v grep|awk '/httpd/;end'
由於基本都是靜態頁面,cpu消耗很低,每程序占用記憶體也不算多,大約200k。

伺服器記憶體有2g,除去常規啟動的服務大約需要500m(保守估計),還剩1.5g可用,那麼理論上可以支援1.5*1024*1024*1024/200000 = 8053.06368

約8k個程序,支援2w人同時訪問應該是沒有問題的(能保證其中8k的人訪問很快,其他的可能需要等待1、2秒才能連上,而一旦連上就會很流暢)

##### 控制最大連線數的maxclients ,因此可以嘗試配置為:

mpm_prefork_module>

startservers 5

minspareservers 5

maxspareservers 10

serverlimit 5500

maxclients 5000

maxrequestsperchild 100

ifmodule>

==注意==,maxclients預設最大為250,若要超過這個值就要顯式設定serverlimit,且serverlimit要放在maxclients之前,值要不小於maxclients,不然重啟httpd時會有提示。

修改apache最大連線數/apache併發數

關於tcp的三.四次握手狀態描述

檢視linux中的tcp連線數

檢視Apache併發請求數及其TCP連線狀態

prefork mpm startservers number of server processes to start minspareservers minimum number of server processes which are kept spare maxspareservers m...

檢視Apache併發請求數及其TCP連線狀態

這兩天搭建了一組apache伺服器,每台伺服器4g記憶體,採用的是prefork模式,一開始設定的連線數太少了,需要較長的時間去響應使用者的請求,後來修改了一下apache 2.0.59的配置檔案httpd.conf 引用 prefork mpm startservers number of ser...

檢視Apache併發請求數及其TCP連線狀態

這兩天搭建了一組apache伺服器,每台伺服器4g記憶體,採用的是prefork模式,一開始設定的連線數太少了,需要較長的時間去響應使用者的請求,後來修改了一下apache 2.0.59的配置檔案httpd.conf prefork mpm startservers number of server...