休止状態で起動すると、topコマンドのVIRT列にプロセスで使用されるスワップ領域が表示されますか?

休止状態で起動すると、topコマンドのVIRT列にプロセスで使用されるスワップ領域が表示されますか?
top - 10:43:31 up 8 days,  1:28,  4 users,  load average: 0.72, 0.57, 0.44
Tasks: 180 total,   1 running, 177 sleeping,   0 stopped,   2 zombie
%Cpu(s):  8.9 us,  2.1 sy,  0.0 ni, 88.9 id,  0.0 wa,  0.0 hi,  0.2 si,  0.0 st
KiB Mem:   8078124 total,  3815444 used,  4262680 free,   108300 buffers
KiB Swap:  9437180 total,  2448032 used,  6989148 free,   446248 cached

PID  USER      PR  NI  VIRT SWAP  RES CODE DATA  SHR S  %CPU %MEM    TIME+  COMMAND                      
3274 root      20   0  160m 4392 6808 2400  80m 1684 S  13.2  0.1 245:09.29 wicd                         
3451 root      20   0 79684 4900 2328 2400 6124  764 S   7.9  0.0 150:21.43 wicd-monitor                 
2804 messageb  20   0 30200  232  856  392  756  408 S   6.6  0.0 128:20.46 dbus-daemon                  
3856 cifer     20   0  411m 7524  28m 2400 150m 5904 S   1.3  0.4  20:34.23 wicd-client                  
4226 cifer     20   0 1499m 197m  52m  86m 1.0g 6504 S   1.3  0.7 227:24.62 chromium   
1087 cifer     20   0 1556m 458m 166m  86m 1.2g 9980 D   2.3  2.1   4:27.35 chromium 

ご覧のとおり、物理メモリは8Gですが、3.8Gしか使用していないため、8G空間を超えたことはないと確信していますが、2.4Gスワップ空間を使用するのは休止状態のためです。

ここで、最上位コマンドのVIRT列とSWAP列は、すべてのプロセスがスワップ領域を使用していることを示しています。すべてのプロセスにSWAP列を追加しましたが、2.4Gより少し小さく見えます。

私は正しいですか?休止状態のためにスワップが使用されますか?

また、質問があります。両方のChromeプロセスのVIRT DATA列が高すぎるようですが、これは可能ですか?

答え1

topマニュアルページを見てください。

o: VIRT  --  Virtual Image (kb)
   The  total amount of virtual memory used by the task.  It includes all code, 
   data and shared libraries plus pages that have been swapped out. (Note: you 
   can define the STATSIZE=1 environment variable and the VIRT will be 
   calculated  from the /proc/#/state VmSize field.)

   VIRT = SWAP + RES.

p: SWAP  --  Swapped size (kb)
   The swapped out portion of a task's total virtual memory image.

また、以下はArchLinux Wikiの説明です。一時停止と休止状態

抜粋

  • RAMの一時停止方法は、システム状態を復元するのに必要なRAMを除いて、システムのほとんどの部分への電力を除去する。大きなスリープ効果のため、コンピュータがバッテリーで動作していてカバーが閉じているとき(またはユーザーが一定期間活動していない場合)、ラップトップは自動的にこのモードに入ることをお勧めします。
  • ディスクの一時停止方法は、システム状態を保存してスペースを交換し、システムの電源を完全にオフにします。本機の電源を入れると状態が回復します。以前は、消費電力はゼロでした。

この意見に基づいて、あなたの論理は正しいと思います。私は通常、休止状態を使用せず、RAMの一時停止方法のみを使用することを選択しているため、スワップ使用量が急増したことを見たことはありません。これは上記を考慮すると意味があります。

はい

$ top
top - 23:40:12 up 15:33,  5 users,  load average: 2.49, 2.62, 2.70
Tasks: 307 total,   3 running, 304 sleeping,   0 stopped,   0 zombie
Cpu(s): 47.6%us,  4.6%sy,  0.0%ni, 47.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   7987492k total,  7528920k used,   458572k free,   161664k buffers
Swap:  5963772k total,    40156k used,  5923616k free,  1100816k cached

答え2

私はそうは思わない。休止状態は、スワップ空間をデータ記憶領域として使用する以外に、スワップとは無関係です。スワップを無効にして(すべてのスワップパーティション/ファイルのマウント解除)、システムが休止状態になっている場合(小さなウィンドウを使用)、再マウントすることもできます。コース条件の競争)。

つまり、休止状態の前のある時点で、カーネルは、現在実行されていないプログラムの特定のコードページ(または実行されていない部分)を置き換えることがパフォーマンスの面でより合理的であると判断する可能性が高いと思います。最近使用されていない)一部のメモリをデータに使用できるようにします(メモリを割り当てるか、malloc()ファイルmemmap()システムのキャッシュのみを使用)。これはあなたの使用パターンによって異なり、交換トレンドを調整することによって制御できます/proc/sys/vm/swappiness

答え3

VIRTは、プロセスによって割り当てられた仮想メモリのサイズです。これには、RAMのページ、スワップのページ、他のプロセスと共有されるページ、メモリマップされたファイル、その他のいくつかの種類など、プロセスマップされたすべてが含まれます。

休止状態モードは、すべてのプロセスデータをスワップ空間に書き込むことで動作します。休止状態メカニズム(Linuxでは一部のプロセスを経る)によっては、再開時にデータの一部またはほとんどがスワップ領域に残ることがあります。ページは必要なときにのみ読み込まれるため、回復速度が速くなります。

プロセスがRAM全体を使用しない場合でも、スワッピングが発生する可能性があります。 RAMは、プロセスメモリだけでなく、ディスクキャッシュやバッファにも使用されます。使用可能なRAMの量がワークロードに必要な量にほぼ似ている一般的なシステムでは、RAMの約半分をプロセスで一度に使用し、残りの半分をキャッシュで使用する必要があります。ここではちょうど復元したので、キャッシュはほとんど空になり、すぐにいっぱいになります。

関連情報