http://www.kume.idv.tw/read-68.html



如果單一主機網站數量超過600以上,則必須注意apache可能會運作不正常,例如:httpd雖然正在運行,但卻無法顯示網頁、或httpd根本無法啟動。

這時可能是因為每個虛擬網站都各自設有log檔的寫入位址,造成httpd在啟動時同時間開啟大量的檔案,超過系統負荷,以至於httpd不正常。

因此,以下說明如何把所有紀錄檔都先寫入單一檔案,事後在將其分開。 

1.修改網站log檔寫入方式(順序很重要),
i) cp -a /etc/httpd/conf/httpd.conf ~
ii) vi /etc/httpd/conf/httpd.conf
註解 CustomLog logs/access_log combined
#CustomLog logs/access_log combined
增加
LogFormat "%v %h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" vhost
CustomLog logs/access_log vhost
儲存,離開。
iii) 註解所有虛擬網站寫入紀錄檔的設定
$ cat /etc/httpd/conf/httpd.conf |sed "s/^ ErrorLog/# ErrorLog/"|sed "s/^ CustomLog/# CustomLog/" > /tmp/tmp1
$ cat /tmp/tmp1 > /etc/httpd/conf/httpd.conf
$ service httpd restart

2.上傳 下載檔案splog_cron.sh (85 Byte , 下載:8次) 及 下載檔案split-logfile.sh (2.33 KB , 下載:9次) 至 /usr/bin,並改其權限為777

3.加入排程分解log檔
echo "*/30 * * * * root /usr/bin/splog_cron.sh" >> /etc/crontab

完成。

創作者介紹

創造心理的感動

gisanfu 發表在 痞客邦 PIXNET 留言(0) 人氣()