私のマシンでkjournald
がおかしくなっている理由を理解しようとしています。これは、大量のメモリを搭載した8コアのボックスです。最大50%のCPU負荷があります。
Iotopは特定のプロセスを指しているようには見えません-あちこちで書き込みのバースト(主にcronの開始、生成された監視統計など)sys/vm/block_dump
書き込み統計を収集するために、次のようなリストを取得しました。
kjournald(1352): 1909
sendmail(28934): 13
cron(28910): 12
cron(28912): 11
munin-node(29015): 3
cron(28913): 3
check_asterisk_(28917): 3
sh(28917): 2
munin-node(29022): 2
munin-node(29021): 2
ここで、kjournald
アクションは単なる書き込みです。
なぜそれが起こっているのですか? kjournaldアクティビティを少し制限するために他に何を見るべきですか?実際に書かれていることとは不釣り合いなようです。
kjournald
は、ext3(ジャーナリングファイルシステム)のジャーナルを担当します。特定の負荷で多くのCPUを使用することが知られています。別のファイルシステムを使用するか、ジャーナリングを無効にする(効果的にfs ext2を作成する)以外に、すべきことは多くありません。
理論的には、ext3ジャーナリングの他のモードの1つを使用して、CPU使用率が低下するかどうかを確認できますが、それぞれの方法は、ディスクに書き込まれるデータの安全性の妥協点です。モード、書き戻しモード、および「すべて」モードを注文しました。
システムのマウント時に、data=
のように、オプションdata=ordered
を使用してモードを設定します。
デフォルトでは、ext3ファイルシステムはatimesをオンにしてマウントされます。ファイルまたはディレクトリが読み取られる/アクセスされるたびに、ファイルシステムはこのatimeレコードを更新するためにディスクに書き戻す必要があります。これは、ワークロードがほとんど読み取りベースである場合でも、各ファイルとディレクトリのアクセス時間を更新するためにディスクをヒットする必要があることを意味します。これは、kjournald
プロセスが書き込みを行っていた理由についての私の推測です多くのブロック。
Atimeをオフにすると、パフォーマンスが大幅に向上しますが、POSIXへの準拠が損なわれます。 このWikipediaの記事 をチェックして、atimeの批判に関する議論を行ってください。
時々オフにするには、ファイルシステムのマウントオプションにnoatime
を追加するか、poigeの提案に従って再マウントできます。ここにあなたのルートファイルシステムの例があります:
mount -o remount,noatime /
データの完全性が重要でない場合:これを行う
iostat -o -a
それが本当にkjournaldであることを確認してください。サーバーがクラッシュする原因は何ですか。
ハードドライブをSSDに変更しても機能します。
Kjournaldが5-10MBのデータを書き込んでいるのを見たとき
http://ubuntuforums.org/showthread.php?t=56621
Sudo tune2fs -O ^has_journal /dev/sda1
Sudo e2fsck /dev/sda1
ここで、sda1はパーティションの名前です
結果をコメントで報告して、さらに確認できるようにします。
言うべきことではありません、ただ言及するだけです:
mount -oremount,noatime /fs/being_over/journaled
—簡単な推測ショットとして(とにかくmount
がどのように見えるかを私たちに示していない)tune2fs -J …
)