Linux システムでターミナルラグやシャットダウンの遅さなどの問題に遭遇したことがありますか?これらの問題は、ユーザー エクスペリエンスに影響を与えるだけでなく、作業効率やシステムの安定性にも影響を与える可能性があります。この記事では、システムのパフォーマンスを向上させ、遅れや長時間にわたるシャットダウンの問題を回避するのに役立つ、Linux システムの最適化のいくつかの方法を紹介します。
sigterm と sigkill の概念についてはある程度理解していただけたと思います。
Linux システムをシャットダウンすると、Linux システムは終了信号 (sigterm) を送信し、実行中のプロセスに停止するよう丁寧に要求します。一部のプロセスはこの動作に従わず、終了信号を無視して実行を継続します。
これにより、システムは実行中のプロセスが停止するまで事前に定義された期間待機するため、シャットダウン プロセスに遅延が発生する可能性があります。この期間が経過すると、kill シグナルを送信して、残りの実行中のプロセスをすべて強制的に停止し、システムをシャットダウンします。
実際、場合によっては、黒い画面に「停止ジョブが実行中です」のようなメッセージが表示されることがあります。
システムが長時間ダウンしている場合は、次のことを行うことができます:
どのプロセス/サービスに時間がかかりすぎているかを確認し、それを削除または再構成して適切に実行できるかどうかを確認します。
システムが実行中のプロセスを強制的に停止するまでのデフォルトの待機時間を変更します。 (簡単ではありますが、エレガントではない方法)
私のオペレーティング システムは systemd を使用する Ubuntu です。ここで説明するコマンドと手順は、systemd を使用するすべての Linux ディストリビューション (ほとんどのディストリビューション) に適用されます。
どのプロセスが Linux の長時間シャットダウンを引き起こすかを確認してください
何が問題なのかを知りたい場合は、最後にシャットダウンしたときに何が起こったかを確認する必要があります。このコマンドを使用すると、「I Know What You Did Last Summer」 (「去年の夏に何をしたか知っている」のもじり) のパワーを得ることができます。
リーリーjournalctl コマンドを使用すると、システム ログを読み取ることができます。オプション -b -1 を使用して、最後に開始されたセッションのログをフィルタリングします。オプション -r を使用すると、ログは新しい順に表示されます。
つまり、journalctl -rb -1 コマンドは、Linux システムの最後のシャットダウン前のシステム ログを表示します。ここで、Linux システムの長時間にわたるシャットダウンの問題を分析する必要があります。
日記をお持ちでない場合は、次のことを行ってください。
ジャーナル ログがない場合は、ディストリビューションで systemd が使用されているかどうかを確認してください。
systemd を使用する一部の Linux ディストリビューションでも、ジャーナル ログはデフォルトではアクティブ化されません。
/var/log/journal が存在するかどうかを確認してください。存在しない場合は作成します:
リーリー/etc/systemd/journald.conf ファイルの内容をチェックし、ストレージ値が auto またはpersistent に設定されていることを確認する必要もあります。
ログに疑わしいものはありますか? 停止を拒否するプロセス/サービスはありますか? ある場合は、副作用なく削除できるかどうか、または再構成できるかどうかを調査してください。ここにあるものをやみくもに削除しないでください。このプロセスについてはある程度理解できるはずです。
デフォルトの停止タイムアウトを短縮することで、Linux でのシャットダウンを高速化します (クイックフィックス)
シャットダウンのデフォルトの待ち時間は通常 90 秒に設定されています。この時間が経過すると、システムはサービスの強制停止を試みます。
Linux システムをすぐにシャットダウンしたい場合は、この待機時間を変更できます。
すべての systemd 設定は、/etc/systemd/system.conf にある構成ファイルにあります。このファイルには # で始まる行が多数あるはずです。これらは、ファイル内の各エントリのデフォルト値を表します。
開始する前に、元のファイルのコピーを作成することをお勧めします。
リーリーここで DefaultTimeoutStopSec を探します。 90秒に設定することもできます。
リーリーこの値を、5 秒や 10 秒など、より使いやすい値に変更する必要があります。
リーリーターミナルで設定ファイルを編集する方法がわからない場合は、次のコマンドを使用してファイルを開いてシステムのデフォルトのテキスト エディタ (Gedit など) で編集できます。 リーリー
DefaultTimeoutStopSec の前の # を忘れずに削除してください。ファイルを保存し、システムを再起動します。これは、Linux システムのシャットダウンの遅延を短縮するのに役立ちます。
ウォッチドッグの問題!
Linux には、特定のサービスが実行されているかどうかを監視する watchdog と呼ばれるモジュールがあります。ソフトウェア エラーによりシステムがハングした場合に、システムを自動的に再起動するように構成できます。システムを手動でシャットダウンまたは再起動できるため、デスクトップ システムでウォッチドッグを使用することはまれです。リモートサーバーでよく使用されます。
最初にウォッチドッグが実行されているかどうかを確認します:
リーリー
システムがウォッチドッグを実行している場合は、systemd 構成ファイル /etc/systemd/system.conf で ShutdownWatchdogSec 値を 10 分からより低い値に変更できます。この記事の導入部を通じて、サービスの無効化、カーネル パラメーターの調整、ドライバーのアップグレード、ジャンク ファイルのクリーニングなど、いくつかの Linux システム最適化方法についてすでに学習しました。これらの方法により、システムのパフォーマンスを向上させ、端末のフリーズやシャットダウンの遅さなどの問題を回避できます。もちろん、システムや使用シナリオが異なれば、異なる最適化方法が必要になります。実際のアプリケーションでは、特定の状況に応じて適切な最適化戦略を選択し、実際の効果に応じて調整できます。
以上が端末がフリーズしてシャットダウンが遅くなりますか? Linux システムの最適化と高速化のガイドはここにあります。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。