web-dev-qa-db-ja.com

使用率が高いkjournaldの理由

私のマシンで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アクティビティを少し制限するために他に何を見るべきですか?実際に書かれていることとは不釣り合いなようです。

15
viraptor

kjournaldは、ext3(ジャーナリングファイルシステム)のジャーナルを担当します。特定の負荷で多くのCPUを使用することが知られています。別のファイルシステムを使用するか、ジャーナリングを無効にする(効果的にfs ext2を作成する)以外に、すべきことは多くありません。

理論的には、ext3ジャーナリングの他のモードの1つを使用して、CPU使用率が低下するかどうかを確認できますが、それぞれの方法は、ディスクに書き込まれるデータの安全性の妥協点です。モード、書き戻しモード、および「すべて」モードを注文しました。

  1. Ordered:メタデータのみをジャーナルしますが、メタデータの変更をジャーナルにコミットする前に、メタデータに関連するデータが確実に保存されるようにします。
  2. writeback:ジャーナルのみのメタデータ。ただし、ジャーナルコミットの前にデータが保存される保証はありません。
  3. journal:すべてがジャーナル化され、データとメタデータ。遅いかもしれませんがYMMVです。

システムのマウント時に、data=のように、オプションdata=orderedを使用してモードを設定します。

15
coredump

デフォルトでは、ext3ファイルシステムはatimesをオンにしてマウントされます。ファイルまたはディレクトリが読み取られる/アクセスされるたびに、ファイルシステムはこのatimeレコードを更新するためにディスクに書き戻す必要があります。これは、ワークロードがほとんど読み取りベースである場合でも、各ファイルとディレクトリのアクセス時間を更新するためにディスクをヒットする必要があることを意味します。これは、kjournaldプロセスが書き込みを行っていた理由についての私の推測です多くのブロック。

Atimeをオフにすると、パフォーマンスが大幅に向上しますが、POSIXへの準拠が損なわれます。 このWikipediaの記事 をチェックして、atimeの批判に関する議論を行ってください。

時々オフにするには、ファイルシステムのマウントオプションにnoatimeを追加するか、poigeの提案に従って再マウントできます。ここにあなたのルートファイルシステムの例があります:

mount -o remount,noatime /
4
Evan Borgstrom

データの完全性が重要でない場合:これを行う

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はパーティションの名前です

結果をコメントで報告して、さらに確認できるようにします。

1
Sharen Eayrs

言うべきことではありません、ただ言及するだけです:

  1. mount -oremount,noatime /fs/being_over/journaled —簡単な推測ショットとして(とにかくmountがどのように見えるかを私たちに示していない)
  2. ジャーナルサイズを小さくしてみてください(tune2fs -J …
  3. Reiserに切り替えます(かなり長い間堅牢です、ええ。そのような厄介なジャーナリングはありません。)
0
poige