リロードすると、Linux mintでユーザーが開始したプロセスがハングします。

リロードすると、Linux mintでユーザーが開始したプロセスがハングします。

私は古いラップトップ、古いペンティアムデュアルコア(私の考えでは)2.3GHz、Linux mint 17.3 --- Mateを実行しています。

ノートブックの負荷が高いと(ビデオデコードなど)、数秒間停止することがありますが、システムがユーザーではなく手動で起動したいくつかの(最も頻繁にランダムな)プロセス(デスクトップなど)が起動したプロセスがクラッシュします。 。ファイル書き込みプロセスは常に操作を完了して中断されないため、正しく閉じられているようです。

競合が発生するプロセスはランダムであるため、一覧表示できませんが、最も一般的にグラフィックではないプロセスは停止します。 Firefoxのようなものは最終的に少量で終わる傾向があります。

答え1

あなたが触れることができるものOOMキラーこれは一般的なLinuxメモリ管理戦略の一部です。メモリマネージャ(Linuxカーネル)がユーザースペースとカーネルプロセスにメモリを提供できなくなると、OOMキラーはアルゴリズムを使用して各プロセスで計算された「不良」値に基づいて1つ以上のプロセスを選択します。

ユーザーの観点からは、これは、通常のデスクトップ環境など、フォアグラウンドアプリケーションとバックグラウンドアプリケーションの両方を含む、プログラムの「ランダム」(非決定的な)競合のように見えます。

ビデオデコードはCPUリソースを大量に消費しますが、OOMキラーを引き起こすメモリ必要です。ビデオデコーダのメモリ使用量を減らすオプションはありますか(おそらく小さいバッファを使用して)?それに加えて、唯一の(実際の)防御は、利用可能なメモリ量を増やすことです。つまり、物理的にメモリをアップグレードしたり、システムがメモリを消費する他のプロセスを事前に終了したりできます。

メモリを消費するプロセス追跡

このコマンドを使用して、メモリを大量に消費するプロセスを追跡できますtop -o %MEM。 Linux Mintがその構文をtopサポートしていない場合は、直接実行してキーを使用してソートフィールドを変更してください。-o %MEMtop<>

この手法の良い副作用は、画面の最初の数行で利用可能なメモリとスワップ領域の量を確認することができることですtop

top - 14:13:43 up 5 days,  4:00,  4 users,  load average: 0.00, 0.02, 0.05
Tasks: 168 total,   2 running, 166 sleeping,   0 stopped,   0 zombie
%Cpu(s):  4.0 us,  1.0 sy,  0.0 ni, 95.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   2049988 total,  1231344 used,   818644 free,   358072 buffers
KiB Swap:  2095100 total,   217588 used,  1877512 free.   450268 cached Mem

プロセスを直接終了します。

その後、この情報を使用して大量のメモリを使用する不要なプロセスを先制的に終了(終了)することができるため、OOMキラーは重要な項目を終了しません。 2つの方法:

  1. kill 12345別の端末を入力するか(12345表示されている「PID」はどこにありますかtop?)
  2. topを押し、kプロンプトが表示されたら、PIDを入力してダブルEnterクリックします。

これは説明を必要としませんが、プロセスを終了するときは注意してください。通常、保存していない操作が失われないように、Quit コマンドを使用してアプリケーションを正常に終了するのが最善です。

関連情報