最近在處理某個專案時發現當瀏覽量一大時,就會出現極度緩慢的情況。

所以稍微研究了一下發現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查找相關說明!