[Linux]Apache存取緩慢以及Time_Wait回收
最近在處理某個專案時發現當瀏覽量一大時,就會出現極度緩慢的情況。
所以稍微研究了一下發現apache的Time_Wait多的嚇人。(可使用下列語法觀察:)
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
在萬能的Google大神引導之下找出了兩個地方要調整。
其一為mpm_prefork.conf
vim /etc/apache2/mods-available/mpm_prefork.conf
新增與修改為下方結果。
StartServers 10
MinSpareServers 10
MaxSpareServers 20
ServerLimit 2000
MaxRequestWorkers 1500
MaxConnectionsPerChild 10000
接著是修改內核,讓apache狀態為Time_Wait的可以進行回收。
vim /etc/sysctl.conf
在最下方新增:
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
如此一來,就可以解決apache緩慢以及time_wait過多的問題。 上面的設定如果有疑問的話,可以至Apache.org查找相關說明!