Linux でコンピュータがまれにフリーズする場合、どうすれば診断できますか?

Linux でコンピュータがまれにフリーズする場合、どうすれば診断できますか?

ここ数か月、デスクトップ コンピューターが不定期にフリーズする現象が発生しています。フリーズすると、マウスを含む画面の内容がフリーズし、キーボードを使用して再起動したり仮想コンソールに切り替えたりすることができず、SysRq シーケンスも機能しません。唯一の選択肢は、ケースのボタンを使用してハードリセットすることです。

私は主に Debian 11.6 を使用していますが、たまにゲームをするときに Windows 11 を使用します。ゲーム中にフリーズしたことはありませんが、それは単にゲームに費やす時間が短いからかもしれません。

矛盾した手がかり:

  • 凍結は、この地域で熱波(40 °C 以上)が襲った夏に起こり始めました。そのため、過熱の問題だと思いました。実際、秋と冬には凍結の頻度は減りましたが、完全に止まったわけではありません。以前は 1 日か 2 日に 1 回起こっていましたが、今では 1 週間に 1 回くらいです。

  • フリーズは、フルスクリーン ビデオを視聴しているときによく発生し、ランダム データがビデオ メモリに書き込まれたかのように、色のパターンが表示されることがあります (常に発生するわけではありません)。そのため、ビデオ カードに問題があるのではないかと考えました (VDPAU がインストールされているため、プログラムがハードウェア デコードを使用している可能性があります)。ただし、フリーズは通常のデスクトップ使用時にも発生します。

診断:

  • 再起動後にシステム ログを確認しましたが、関連する情報はありませんでした。最後のエントリは多くの場合数分前のものであり、標準のシステム イベントに関連しています。ただし、これは単にフリーズにより最後のメッセージが失われたことを意味している可能性があります。

  • 私はCPU負荷テストをdd if=/dev/zero of=/dev/null以下のものに基づいて使用しましたコンピュータが不規則にフリーズする、7 つの並列ジョブ (CPU はハイパースレッディングを備えた 4 コア)。8htopつの仮想コアすべてが 100 % で表示されましたが、約 10 分後にフリーズが発生することはありませんでした。

  • と の両方をインストールし、ブート メニューからメモリ テストを開始しました。どちらのバージョンでmemtest86memtest86+、コンピューターは約 1 秒後にフリーズしますが、エラー メッセージは表示されません。画面の写真については以下を参照してください。

    これはメモリに欠陥があることを意味しますか? 代わりにエラー メッセージが表示されると思っていました。さらに、私は大きなデータ ファイルを操作することが多いのですが、ファイル データの破損に気付いたことはありません。また、メイン メモリをいっぱいにする傾向がある科学計算を時々実行しますが、そのときにフリーズを経験したことはありません。(ただし、過度のスワッピングが原因でシステムが停止することがよくありました。)

私が見つけた、フリーズを一貫して素早くトリガーする唯一の方法は、メモリ テストです。

質問:

  • 本当にメモリの故障が原因である場合、4 つのメモリ モジュールのうちどれを交換する必要があるかをどのように判断すればよいでしょうか。それとも、常にすべてを交換する必要がありますか。

  • 同様の質問をいくつか読んで、フリーズの原因は電源の不良である可能性があると知りました。古い電源が壊れたため、約 1 年半前に交換しました。当初はまったく同じモデルを使用するつもりでしたが、製造中止になっていたため、少しだけ仕様の高いモデルを使用しました。この機会を利用して、ケース内部を徹底的に掃除しました。

  • ソフトウェア側からこの問題をより適切に診断するにはどうすればよいでしょうか? 特に、フリーズ直前のログ メッセージをどのように保存すればよいでしょうか? Debian 11 は systemd ログを使用しますが、代わりに、または追加でサーバーにメッセージを送信する方法などはありますか?

システム仕様:

  • ASUSTeK COMPUTER INC. P8Z77-M Rev 1.xx および SMBIOS 2.7
  • American Megatrends Inc. BIOS バージョン 1806
  • be quiet! ストレートパワー 11 750W 750W ATX ブラック
  • インテル(R) Core(TM) i7-3770 CPU @ 3.40GHz
  • 256 KiB L1 キャッシュ、1 MiB L2 キャッシュ、8 MiB L3 キャッシュ (L3 は無効になっているようですが、無効にした記憶はありません)
  • Intel Corporation 7 シリーズ/C216 チップセット
  • 4 モジュール à 4 GB Transcend JM1333KLN-8GK DIMM DDR3 同期 1333 MHz (0.8 ns)
  • NVIDIA Corporation GP106 [GeForce GTX 1060 6GB] (rev a1)
  • SAMSUNG SSD 830 シリーズと WDC WD60EFRX、どちらも SMART エラーなし

このコンピュータは 10 年ほど前のものなので、新しいものを購入してもそれほど問題はありません。その間に、いくつかの小さなアップグレード (メモリの増設、CPU の若干の改善、ビデオ カードの改善) を行いましたが、いずれもフリーズの原因になるほど最近のものではありません。

フリーズ後のメモリテストのスクリーン写真:

メムテスト86 メムテスト86+

2 番目の画面では、赤い「+」がフリーズ後も点滅し続けており、ビデオ カードがまだ機能していることを示しています。


追加:

@Appleoddity のコメントに応えて、メモリ モジュールを取り外しました。メモリ モジュールはスロットにしっかりと収まっており、接点も含めてきれいです。再度挿入すると、挿入されているように見えても、実際には正しく挿入されていないことが時々あることに気付きました。これは、強く押し込むことで修正されます。しかし、その場合、メモリ エラーは発生しませんが、コンピューターはまったく起動しません。

欠陥があるのがモジュールの 1 つだけである場合に備えて、モジュールを 1 つずつ挿入してメモリ テストを実行しました。ただし、各モジュールでは、エラー メッセージやフリーズが発生することなく、すべてのテストに合格しました。

次に、それらをペアで入れました。6 つの組み合わせをすべて試したかどうかはわかりませんが、試したいくつかの組み合わせのすべてで、メモリ テストの開始から数秒後にコンピューターがフリーズしました。

最後に、マザーボードのBIOSを(2015年12月18日の最新バージョン2203に)アップデートして、問題が解決するか、少なくとも診断が改善されることを期待しましたが、成功しませんでした。また、削減するBIOS セットアップでメモリ クロック速度を設定しましたが、「オーバークロック」が失敗したというエラー メッセージが表示されました。

他に試せることはありますか? 完全に新しいメモリ モジュールを購入するだけでよいのでしょうか?

関連情報