プロダクションWebサーバーで削除する必要がある巨大なログファイルがあります。 Linuxで実行すると、システムがクロールするのではないかと心配しています。素晴らしいアイデアはありますか?
更新:
ファイルシステム:ext3
パーティション:/ var(主にログとMySQLデータ)
ログファイルは書き込まれていません。 (追加データは追加されていません)
WebサーバーはLAMP(多くのIO)
ファイルを削除するよりも、ファイルをゼロにする/切り捨てる方が速い場合があります。これは非常に大きなログファイルであるため、これについても触れています。そのため、大量のプロセスアクティビティが書き込まれているはずです。本番サービスを停止および開始する立場にない場合は、: > /path/to/logfile.log
を試してください。
ionice -c3 rm yourfile.log
がベストショットです。rmはアイドルI/Oクラスに属し、他のプロセスがI/Oを必要としない場合にのみ使用します。巨大なファイルを削除する場合、ext3は優れたものではなく、それについてできることはあまりありません。はい、rmコマンドはシステムの速度を低下させます。削除の速度と期間は、推測できる程度であり、ハードウェア、カーネルのバージョン、ext3ファイルシステムの作成設定に大きく依存します。
ログサーバーや大きなファイルを使用するその他のサーバーでは、XFSが非常に高速であるため、XFSを使用する傾向があります。
代替ソリューションは、個別のディスクを使用し、ディスク間を循環させることです。したがって、1つのディスクへのロギングが完了したら、もう1つのディスクに交換し、たくさんのIOを使用してデータを削除し、アクティブなディスクに負担をかけないようにすることができます。