//查看哪些IP連接本機(jī)
netstat -an|more
//查看哪些IP連接80端口
netstat -ant |grep -i "80"
netstat -ant|grep -i "80"|wc -l
//統(tǒng)計(jì)httpd協(xié)議的連接數(shù)
ps -ef|grep httpd
//統(tǒng)計(jì)已連接上的狀態(tài)為established
netstat -an|grep ESTABLISHED
//查看哪個(gè)IP連接數(shù)最多
netstat -na|grep ESTABLISHED|awk {print 1}|sort|uniq -c|sort -r +0n
//統(tǒng)計(jì)各種連接狀態(tài)
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
//各種狀態(tài)詳解
TCP連接狀態(tài)詳解
LISTEN: 偵聽來自遠(yuǎn)方的TCP端口的連接請(qǐng)求
SYN-SENT: 再發(fā)送連接請(qǐng)求后等待匹配的連接請(qǐng)求
SYN-RECEIVED:再收到和發(fā)送一個(gè)連接請(qǐng)求后等待對(duì)方對(duì)連接請(qǐng)求的確認(rèn)
ESTABLISHED: 代表一個(gè)打開的連接
FIN-WAIT-1: 等待遠(yuǎn)程TCP連接中斷請(qǐng)求巴比,或先前的連接中斷請(qǐng)求的確認(rèn)
FIN-WAIT-2: 從遠(yuǎn)程TCP等待連接中斷請(qǐng)求
CLOSE-WAIT: 等待從本地用戶發(fā)來的連接中斷請(qǐng)求
CLOSING: 等待遠(yuǎn)程TCP對(duì)連接中斷的確認(rèn)
LAST-ACK: 等待原來的發(fā)向遠(yuǎn)程TCP的連接中斷請(qǐng)求的確認(rèn)
TIME-WAIT: 等待足夠的時(shí)間以確保遠(yuǎn)程TCP接收到連接中斷請(qǐng)求的確認(rèn)
CLOSED: 沒有任何連接狀態(tài)
//如果有大量TIME_WAIT,則需要調(diào)整系統(tǒng)內(nèi)核參數(shù)
vim /etc/sysctl.conf
編輯文件迄薄,加入以下內(nèi)容:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
然后執(zhí)行 /sbin/sysctl -p 讓參數(shù)生效哲鸳。
net.ipv4.tcp_syncookies = 1 表示開啟SYN cookies堤撵。當(dāng)出現(xiàn)SYN等待隊(duì)列溢出時(shí)既棺,啟用cookies來處理齐板,可防范少量SYN攻擊戏罢,默認(rèn)為0烁兰,表示關(guān)閉减响;
net.ipv4.tcp_tw_reuse = 1 表示開啟重用靖诗。允許將TIME-WAIT sockets重新用于新的TCP連接,默認(rèn)為0支示,表示關(guān)閉刊橘;
net.ipv4.tcp_tw_recycle = 1 表示開啟TCP連接中TIME-WAIT sockets的快速回收,默認(rèn)為0颂鸿,表示關(guān)閉促绵。
net.ipv4.tcp_fin_timeout 修改系統(tǒng)默認(rèn)的 TIMEOUT 時(shí)間
查看APACHE的工作模式
apachectl -l
//計(jì)算httpd占用內(nèi)存的平均數(shù)
ps aux|grep -v grep|awk '/httpd/{sum+=$6;n++};END{print sum/n}'
//apache性能調(diào)整
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
ServerLimit 5500
MaxClients 5000
MaxRequestsPerChild 100
</IfModule>
maxclients * 內(nèi)存平均數(shù),最好不要超過總內(nèi)存的80%
當(dāng)Apache被啟動(dòng)時(shí),Apache會(huì)自動(dòng)創(chuàng)建StartServers個(gè)進(jìn)程败晴,并且盡力將空閑進(jìn)程數(shù)保持在MinSpareServers和MaxSpareServers之間浓冒。
如果空閑進(jìn)程小于MinSpareServers,Apache將會(huì)以大約每秒1個(gè)的速度新建進(jìn)程尖坤。
如果空閑進(jìn)程小于MaxSpareServers稳懒,Apache將會(huì)刪除多余的空閑進(jìn)程,釋放服務(wù)器資源慢味。
進(jìn)程數(shù)的最大值由MaxClients控制场梆,在Apache1.3中最大只能設(shè)置為256,但在Apache2.0中纯路,可以通過在配置開頭增加ServerLimit項(xiàng)目來突破256的限制或油,此時(shí)必須MaxClients ≤ ServerLimit ≤ 20000
MaxRequestsPerChild用來控制每個(gè)進(jìn)程在處理了多少次請(qǐng)求之后自動(dòng)銷毀,這個(gè)參數(shù)可以設(shè)置為0表示無限(即不銷毀進(jìn)程)驰唬。
//DRBD
DRBD(DistributedReplicatedBlockDevice)是一個(gè)基于塊設(shè)備級(jí)別在遠(yuǎn)程服務(wù)器直接同步和鏡像數(shù)據(jù)的軟件顶岸,用軟件實(shí)現(xiàn)的、無共享的叫编、服務(wù)器之間鏡像塊設(shè)備內(nèi)容的存儲(chǔ)復(fù)制解決方案辖佣。它可以實(shí)現(xiàn)在網(wǎng)絡(luò)中兩臺(tái)服務(wù)器之間基于塊設(shè)備級(jí)別的實(shí)時(shí)鏡像或同步復(fù)制(兩臺(tái)服務(wù)器都寫入成功)/異步復(fù)制(本地服務(wù)器寫入成功),相當(dāng)于網(wǎng)絡(luò)的RAID1宵溅,由于是基于塊設(shè)備(磁盤凌简,LVM邏輯卷)上炎,在文件系統(tǒng)的底層恃逻,所以數(shù)據(jù)復(fù)制要比cp命令更快。DRBD已經(jīng)被MySQL官方寫入文檔手冊(cè)作為推薦的高可用的方案之一