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協議連線數==或多少個程序數==
檢視apache當前==併發訪問數==:ps -ef
|grep httpd|wc -l
檢視apache的併發請求數及其==tcp連線狀態==:linux命令:netstat -an
| grep established | wc -l
其中的syn_recv表示正在等待處理的請求數;established表示正常資料傳輸狀態;time_wait表示處理完畢,等待超時結束的請求數。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的連線中斷請求的確認
tcp連線狀態詳解
在tcp/ip協議中,tcp協議提供可靠的連線服務,採用三次握手建立乙個連線。1. 檢視當前的連線數可以用:第一次握手:建立連線時,客戶端傳送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
##### 計算httpd占用記憶體的平均數:ps aux | grep httpd | wc -l
ps aux|grep -v grep|awk '/httpd/;end'
由於基本都是靜態頁面,cpu消耗很低,每程序占用記憶體也不算多,大約200k。##### 控制最大連線數的maxclients ,因此可以嘗試配置為:伺服器記憶體有2g,除去常規啟動的服務大約需要500m(保守估計),還剩1.5g可用,那麼理論上可以支援1.5*1024*1024*1024/200000 = 8053.06368
約8k個程序,支援2w人同時訪問應該是沒有問題的(能保證其中8k的人訪問很快,其他的可能需要等待1、2秒才能連上,而一旦連上就會很流暢)
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...