使用率が高い理由


15

私はkjournald私のマシンでなぜ狂っているのかを理解しようとしています。メモリを搭載した8コアのボックスです。CPU負荷は最大50%です。

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の行動はただのWRITEです。

なぜそれが起こっているのですか?kjournaldアクティビティを少し制限するには、他に何を検討する必要がありますか?実際に書かれていることに不釣り合いなようです。


使用しているOS。uname情報を投稿できますか。
ソハムチャクラボルティ

私は正確に同じ問題が持っていた
Sharen Eayrs

回答:


15

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

理論的には、ext3ジャーナリングの他のモードのいずれかを使用してCPU使用率が低下するかどうかを確認できますが、各方法はディスクに書き込まれるデータの安全性の妥協点であることを忘れないでください。モード、ライトバックモード、および「すべて」モードを注文しました。

  1. 順序付け:メタデータのみをジャーナルしますが、メタデータの変更をジャーナルにコミットする前に、メタデータに関連するデータが保存されることを保証します。
  2. ライトバック:メタデータのみをジャーナルしますが、ジャーナルがコミットされる前にデータが保存される保証はありません。
  3. ジャーナル:すべてがジャーナルされ、データとメタデータ。遅いかもしれませんが、YMMVです。

data=システムをマウントするときに、オプションを使用してモードを設定しますdata=ordered


ジャーナリングモードを完全にオフにするのとは反対に、ジャーナリングモードを変更する意味はありませんが、あまり意味がありません。それで、ジャーナルのオプションが何の役にも立たないことを説明します。
poige

3
ジャーナルモードが異なると、CPUの動作も異なります。ここでいくつかのテスト。
コアダンプ

1
@coredump、まだ意味がありません。異なるジャーナリングモードのCPU使用率を示すグラフはなく、スループットのみがあります。CPU使用率グラフは、実際にはFSのみの違いを示しています。また、グラフのEXT3とReiser3のかなりの違いを考慮すると、@ viraptorにはkjournaldアクティビティの山があり、全体および平均の CPUフットプリントが分析されることは明らかです。
-poige

その場合は同意しないことに同意します。彼の環境でテストするだけで、CPU使用率に違いがあるかどうかがわかります。また、政府がFS作成者の永続的なロックを取得しているため、ReiserFSはお勧めしません。
コアダンプ

8
ここでは、このユーモアのカップを取り
ます

4

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

atimeをオフにすると、パフォーマンスが大幅に向上しますが、POSIX準拠が破られます。チェックアウトこのWikipediaの記事のatimeのの批判の周りにいくつかの議論のために。

オフにするnoatimeには、ファイルシステムのマウントオプションを追加するか、poigeの提案に従って再マウントできます。ルートファイルシステムの例を次に示します。

mount -o remount,noatime /

3
より最近のカーネルrelatimenoatime、との間の許容可能な妥協点と思われるデフォルトに注意してくださいatime
オリバー

1

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

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

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


3
iostatではなくiotopを意味しますか?
ジョーニランド

0

次のことを言うだけではありません:

  1. mount -oremount,noatime /fs/being_over/journaled—簡単な推測ショットとして(mountとにかくあなたの姿を見せませんでした)
  2. ジャーナルサイズを縮小してみてください(tune2fs -J …
  3. Reiser3に切り替えます(かなり長い間堅牢です。ええ。これほど厄介なジャーナリングはありません。)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.