私のプロセスのいくつかが私のコンピュータで多くの仮想サイズを占めていることがわかりました。私理解するプロセスの仮想サイズは、実際に使用するメモリ、自己マッピングされたメモリ(X サーバー上のグラフィックカード RAM など)、マッピングされたディスク上のファイル(主に共有ライブラリ)の合計です。プロセスが共有するその他のメモリ。つまり、仮想サイズは、プログラムが現在アクセスできるメモリ量を表します。
仮想サイズ(〜117 GB)は多いが、RAMはほとんど占有しないプロセスを実行しています。
GPUメモリが不足しています。
ディスクI/O不足:
仮想サイズの大きなプロセス(RAM、GPUメモリ、およびディスクI / Oが低い)のために潜在的な副作用がありますか?他のプロセスの速度を遅くすることはできますか?コンピュータには32GBのRAMがあります。
答え1
一般的に言って悪い影響があってはいけません。ただし、Linuxではデフォルトで許可されています。過剰なメモリ使用量。これは、プロセスがメモリを要求すると、Linuxが「確実」であると言うことを意味します。その後、メモリ(スワップ領域を含む)が不足すると、Linuxはプロセスを終了してメモリを解放し始めます。
したがって、プロセスに 117 GB が割り当てられているがほとんどを使用しない場合は、117 GB の仮想メモリが表示されます。しかし、プロセスが突然117GBを埋めることを決定すると、Linuxはメモリ不足のため終了します。たぶん他のプロセスがあるかもしれません。(ここで悪影響が出ます。)
Linuxカーネルは、許容されるオーバーコミット量を設定できます。これを行うプロセスはそのリンクで説明されていますが、すべてを一箇所に保管するためにここでも説明します。
Linuxカーネル≥2.5.30には、これを規制する2つのprocファイルがあります。まず、があります/proc/sys/vm/overcommit_memory
。これには3つの値があります。
0
:カーネルにどれだけのオーバーコミットが許可されるかを決定します。1
:無制限の超過購読を許可2
:に基づいて過剰コミットを許可します/proc/sys/vm/overcommitment_ratio
。
別のprocファイルは、/proc/sys/overcommitment_ratio
他のファイルがに設定されている場合に許容されるメモリオーバーコミット率を表します2
。overcommit_memory
に設定すると、LinuxはすべてのスワップスペースとRAMの%をコミットできます2
。overcommitment_ratio