Ubuntu 18.04が数秒間ランダムにフリーズします。マウスカーソルを(ときどき)移動できますが、そうしないとOSが応答しなくなり、他のアプリケーションに切り替えることができません。
再開すると、システムモニターに移動して、数秒前(ただし70%まで)のCPU使用率の急上昇を確認できますが、それで何がそのCPUを使用したかはわかりません。
最近、どのように処理されてCPUを消費したかを知ることができますか?
[〜#〜] update [〜#〜]:その間、私は 原因はWebStorm であると判断しました、疑わしいアプリを分離することにより、JavaベースのIDE。 VS Codeの使用中、フリーズはありませんでした。
以下は、コメントで求められる追加の診断情報です。
$ free -h
total used free shared buff/cache available
Mem: 15G 8.6G 2.3G 2.0G 4.5G 4.4G
Swap: 15G 487M 15G
$ sysctl vm.swappiness
vm.swappiness = 10
WebStormがフリーズすると、システムモニタの負荷が急上昇しますが、100%には近づきません。
CPUアクティビティをキャプチャするツールでシステムを監視していない限り、CPU使用率の過去の履歴を取得することはできません。 1つの方法は、cpustatを実行して出力をキャプチャし、CPU使用率が発生している場所を確認することです。次に例を示します。
Sudo apt-get install cpustat
cpustat -xS | tee cpu.log
スローダウンが発生すると、cpu.logを表示して、実行中のビジー状態を確認できます。
私の経験では、CPU使用率だけのためにLinuxが応答しなくなることはめったにありません。 CPU使用率が高すぎると、すべてが少し遅くなる傾向があります。
一方、I/Oの問題(多数のファイルや大きなファイルの書き込み、スワッピング、障害のあるディスクなど)は、すべてが停止しているように見え、その後少しだけ続行して、再び停止するだけのように、無反応になる可能性があります。マウスでさえ動かなくなることがあるという事実から、あなたの問題はこのカテゴリに分類されると私は信じています。
I/Oが原因かどうかを判断するためのかなりシンプルで効果的な方法は、標準ツールvmstat
を使用することです。 vmstat -w 5
どこか(screen
内、またはターミナル内のみ);これにより、5秒ごとに1行の統計が出力されます。その後、フリーズを経験した後、戻って番号を検査(および/またはAskUbuntuに投稿)できます。
出力は次のようになります。
procs -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu--------
r b swpd free buff cache si so bi bo in cs us sy id wa st
3 0 865332 328876 18014392 8262980 0 0 108 89 7 7 21 6 73 0 0
0 0 865332 330016 18006044 8267348 0 1 0 332 2169 8117 25 6 69 0 0
(この目的のための)興味深い列は次のとおりです。
wa
は、ブロックされているCPUの割合を示しますwa I/Oが終了することを示しています。ここで高い数値は、CPU使用率ではなく、I/Oが問題であることを示唆しています。ボトルネックの特定にも役立ちます。si
およびso
は、それぞれスワップインおよびスワップアウトされたKiB/sの数を表示します。 RAMが十分にある場合は、ほぼ0になるはずです。高い数値は、メモリ要件がメモリサイズを超えていることを示しています。bi
およびbo
は、ディスクから読み取り/書き込みされたKiB/sの数を表示します(これにはスワップアクティビティが含まれます)。予期しない高い書き込み数は、その書き込みを実行しているプロセスの検索を保証する可能性があります(例:iotop
を使用)。数値が低い/中程度のフリーズは、ディスクが遅いことを示しています。atop
をお試しくださいシステム状態のスナップショットによって過去のアクティビティを継続的にキャプチャするよりグラフィカルな方法は、atop
を使用することです。 atop
はtop
やhtop
のようなプログラムに似ていますが、定期的なcronジョブを実行して完全なプロセスとシステムアクティビティデータを生成および保存するという大きな違いがあります。これにより、後で時間をかけて問題を調査することができます。 atop
には、従来のUnix atopsar
と同様のユーティリティsar
も用意されています。両方のユーティリティは、同じシステムデータスナップショットデータベースを共有します。
これは、ディスク使用率ストレス中のシステムを示すatop
スクリーンショットです。赤色で強調表示されているsda
およびLVMの100%のディスク使用率に注意してください。クレジット:atop
著者、Gerlof Langeveld、 atoptool.nl 。
_ Sudo apt-get install atop
_
ここで、最初のアカウンティングスナップショットが実行されるまで約10分待つ必要があります。スナップショットは、エンティティごとのメトリックポイントごとに使用します。追跡されるエンティティは次のとおりです。
すべてのメトリックは、監視されたスナップショットの累積合計です。
これは事実上、少しの「タイムマシン」を提供します。時間を前後に移動して、過去の視聴日のタイムスライスごとに何が起こったかを確認できます。
_ atop -r [/var/log/atop/...]
_
Snapshot-file引数がない場合、atop
は、真夜中から開始して、過去の日のビューを表示します(既存のスナップショットファイルを選択して別の日を表示します)。覚えておくべき最も重要なキーは次のとおりです。
t 時間を先に進める(次のタイムスライスに)
T 時間をさかのぼって(前のタイムスライスに)
h 助けて
q 終了する
スナップショットデルタは、各プロセスでプロセスアカウンティングを使用して正しく実装されているexit()
なので、実行中の短いプロセスが多数ある場合でも、それらのパーツの合計は合計され、適切な実行可能ファイルと適切な時間の両方に正しく割り当てられます。 -スライス。
キャプチャされるのはプロセスだけではありません。完全なシステム状態がキャプチャされます。画面の上半分には、すべてのエンティティの重要なシステムメトリック、CPU、メモリ、ディスク、ネットワークの使用率がすべて表示されます。データには、CPU周波数とスケーリング係数、ネットワークエラーなどが含まれます。さらに役立つように、異常な値は色で強調表示されます。たとえば、100%のタイムスライスディスク使用率は明るい赤で表示され、最大に近い値は別の色で表示されるため、ストレスがかかったエンティティは見落とされがちです。
バッチスタイルの方が好きな場合は、atopsar
よりもatop
を使用することをお勧めします。たとえば、完全な時間範囲のバッチスタイルをダンプするには、次のように使用できます。
_ atopsar -D -b 14:05 -e 14:45
_
(_-D
_:開始)14:05と(_-b
_:終了)14:45の間のディスク使用率(_-e
_)による上位3プロセスを表示します。より詳細な使用法については、_man atopsar
_。
特定のサブエリアに焦点を当てたい場合は、次のatopsar
オプションを使用できます(atop
は対話的に同じ文字を使用します):
_ -C sort processes in order of cpu-consumption (default)
-M sort processes in order of memory-consumption
-D sort processes in order of disk-activity
-N sort processes in order of network-activity
-A sort processes in order of most active resource (auto mode)
_
atop
とatopsar
を使用すると、さらに多くのことができます。詳細については、_man atop
_および_man atopsar
_を使用してください。以上がその要点です。