Apache1 の時は問題なかったのですが、Apache2 の rotatelogs.exe は Apache がこけた時にそのまま、プロセスが残ってしまうようです。
これが、困った問題で、設定の問題かもしれませんが PHP でサイト構築していると過負荷になったときに Apache が次のようなエラーログを残してチャイルドプロセスを再起動してしまうのですが、そのたびに不要なプロセスが残っていき最後には、rotatelogs.exe が起動しなくなってしまいます。
エラーログ
FATAL: erealloc(): Unable to allocate 1441792 bytes
原因を調べてみましたが、よく判りませんでした。
そこで、rotatelogs.exe は使用せず、バッチファイルで対応することにしました。
以下のバッチファイルは、次のような手順を自動で行います。
ログが c:\apache\log に保存されていると仮定。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
この logrotate.bat をタスクマネージャーに登録して1日1回だけ実行します。
再起動の処理中は、Webページが閲覧できなくなりますが、1日のうちでアクセスの少ない時間帯に処理すればいいと思います。
これで、肥大化するログファイルも圧縮して保存できるようになり大満足です。
Page Info | |
---|---|
Page Name : | nao-pon/blog/2005-02-07-1 |
Page aliases : | None |
Page owner : | nao-pon |
Can Read | |
Groups : | All visitors |
Users : | All visitors |
Can Edit | |
Groups : | No one |
Users : | ゲスト |