web-dev-qa-db-ja.com

マシンがフリーズする原因を知るにはどうすればよいですか?

このマシンでArchを実行しています:

3.40GHz i7ヘキサコア(4930K)

16 GB DDR3 1600 MHz RAM

Raid0の2xSamsung 840 EVO SSD(BTRFS raidを使用)

いくつかのVM(2または3)を使用してArchでVMwareを実行し、それぞれに約2〜4コア、および2GB RAM=それぞれを与えると、システムがランダムにフリーズし始めます。数分後、システムは10〜30秒の間フリーズし、その後再び動き始めます。VMをシャットダウンするまで30秒後にフリーズします。システムがフリーズしても、マウスは正常に動きますが、アプリケーションが応答を停止しますホスト上-VMwareが応答しない、Firefox(ホスト上でも開いている)が応答しない、など。

フリーズが発生したときに、プロセスモニターを実行している場合、VMwareによって最大化されたいくつかのコアが表示されますが、同時に、他の未使用のコアがあります。また、RAM= VMは合計6GBを使用し、ホストには10​​GBが残っています。スワップスペースが0なので、スワップによって速度が低下することはありません。

Btrfsはファイルシステムレベルでファイルの断片化を引き起こすため、仮想マシンの動作が遅くなる可能性があるという報告があります。しかし、私が知る限り、断片化は従来のハードディスクの問題にすぎません。SSDにはシークする読み取りヘッドがないため、ファイルが高度に断片化されているかどうかは気にしません。

これは、Debian 7を実行しているときに発生することはなかったので、ハードウェアの問題ではないと確信しています。

システムがフリーズし続ける理由を理解するために、どのツールを実行できますか?私はtop/htopとiotopを試しました(システムがフリーズしたときに過度に書き込みや読み取りが行われていない)。何かを読み書きするのに問題があるかどうかを確認するためのbtrfsには、どのような種類のアクティビティモニターもないようです。他に試すことができるものはありますか?

10
Tal

Btrfsから gotchas page

ランダムな書き込みが多いファイルは、断片化が激しくなり(10000以上のエクステント)、HDDでトラッシュが発生したり、SSDまたは大容量のRAMを搭載したシステムでCPU負荷が数秒間急増したりする可能性があります。

  • サーバーとワークステーションでは、これはデータベースと仮想マシンイメージに影響します。

    • Nodatacowマウントオプションは、関連する落とし穴とともに、ここで使用できます。

    ...

  • 症状には、btrfs-transactiとbtrfs-endio-wriが大量のCPU時間を消費する(スパイクで、同期によってトリガーされる可能性があります)が含まれます。 filefragを使用して、非常に断片化されたファイルを見つけることができます(圧縮では正しく機能しない場合があります)。

Virtualboxで説明したのと同じような問題がありました。 btrfsのnodatacowオプションは、私のシステムでは目立った方法で役に立ちませんでした。自動最適化オプション(デスクトップ環境でのアプリケーションデータベースの可能な解決策として言及されています)も試してみましたが、動作を許容できるような結果にはなりませんでした。

最後に、btrfsパーティションとそれが存在する論理ボリュームを縮小し、新しいLVを作成してext4としてフォーマットし、VMあるディスクイメージ(VirtualBox)をその「パーティション」。

15
Anthon

この問題は、パーティションでLUKSを使用しないことで完全に解決されました。そこで、最初にLUKSではなくBTRFSでパーティションを直接フォーマットしました。

また、次のパラメーターでマウントされます。

/dev/sda2 /           btrfs       rw,noatime,space_cache,compress=lzo,ssd,discard,autodefrag,commit=0,thread_pool=8 0 0

関連 極端な一般的なdm-crypt(LUKS)書き込みパフォーマンス

0
brauliobo

カーネルスレッドkhugepagedが文字通りマイニングしているRAMでそれをデフラグしたり、4kのhugepagesからhugepagesを作成したりしている場合、透過的なhugepagesの問題である可能性があります。

カーネルは、かなりの量のシステムRAMが与えられた場合にhugepagesを有効にすることを決定した可能性があります。

次の2つのカーネル調整パラメータの内容を確認してください。

/sys/kernel/mm/transparent_hugepage/enabled
/sys/kernel/mm/transparent_hugepage/defrag

それらのコンテンツがalwaysの場合、neverで変更し、CPUスパイク/フリーズが消えるかどうかを確認できます。

0
Marco De Lellis