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
完成。