0

私はnginxでpassengerを実行し、数か月前にディスクスペースを使い果たしていたnginxログファイル(具体的には/var/log/nginx/error.log.1、サイズは約5GB)を削除し、ログを保持するようにlogrotateを再構成しましたファイルサイズを小さくします。数日後、削除されたファイルがPassengerプロセスによって何らかの形で再利用されるまで(lsof + L1によって明らかにされたように)、すべてが正常でした。削除されたファイルのサイズが大きくなっているようですので、書き込み中のようです。これはローテーションされたログファイルであるため、なぜerror.log.1に書き込みたいのかわかりません(長い間、error.logの名前をerror.log.1に変更したかどうかはわかりませんが、物事を削除/移動し、それは何らかの形で問題に関連している可能性があります)touch tmp/restart.txtを介して乗客を再起動しませんでした
今、本当に奇妙な部分は、それ以来システムが再起動され、問題がまだ発生していることです。数日または数週間が経過すると、使用可能なディスク容量が突然減少します。lsof+ L1を確認すると、削除されたファイルが再びあります。いったい何がここで起こっているのでしょうか?これがどのように起こったかを知ることは興味深いことであり、私がそれが再発するのをどのように止めることができるかを知ることは役に立ちます。ありがとう。

ログローテーションconfは次のようになります。/var/log/nginx/*.log{dailymissingokrotate52 compress delaycompress notifempty create 640 root adm sharedscripts postrotate [!-f /var/run/nginx.pid] || kill -USR1 cat /var/run/nginx.pid endscript}

4

1 に答える 1

3

私はこれが古いスレッドであることを知っていますが、私の推測では、削除されたログ ファイルのロックを解放した nginx サービスが再起動されたのではないかと推測されます。そのハンドルが解放されるまで、説明した動作を示します)。logrotate 関数が nginx にハンドルを解放させていないようですね。

于 2012-07-26T17:43:25.037 に答える