vmstat
のマニュアルページによると、「swpd」は使用される仮想メモリの量を意味します。私の理解では、ほとんどの場合、物理CPUの容量が不足していない限り、ゼロである必要があります。
しかし、サーバーの「swpd」の値がゼロではないことがわかりました。
理由はわかりません。 700を超えるプロセスがある場合でも、CPUはほぼ100%使用されていません。
合計で、スワップは約190M使用されます。 250Gの合計サイズと比較するとそれほど大きくはありません。
CPUが解放されていても、一部のプロセスが仮想スワップを使用するということですか?
スワップはCPU使用率とは関係ありません。スワップは、ディスクに書き込まれるメモリです。
CPUは通常のRAMに直接アクセスでき、RAMはスワップに比べて非常に高速です。 CPUがアクセスする必要があるデータの高速バッファとしてRAMがあるのはそのためです。
スワップにより、カーネルは必要なときに取得するために、未使用のメモリをディスクに書き込むことができます。ディスクはメモリに比べて非常に遅いため、これはコストのかかるプロセスですが、物理的なメモリ量よりも多くのメモリを使用できます。
また、使用されないものもありますが、メモリスペースが割り当てられている場合があります。通常、カーネルは使用されていないものをスワップアウトします。
190MBの使用済みSWAPは問題ではありません。問題は、コンピューターがスワップのために書き出す必要があり、それを再度取得する必要がある場合です。
私のラップトップには、現在スワップ用に書き込まれた445MBがありますが、3GiBの未使用メモリがあります。明らかに、ある段階でカーネルが使用されていないものを見つけて、交換することにしました。
要するに、以下の場合を除いて、スワップの使用を気にしないでください:
free -m
は使用可能なメモリが非常に少ないことを示します私のラップトップからのfree -m
の簡単な例:
$ free -m
total used free shared buffers cached
Mem: 7702 7454 247 582 230 3477
-/+ buffers/cache: 3746 3955
Swap: 8191 445 7746
ご覧のとおり、247MiBは無料です。しかし、これはすべてではありません。さらに、3GiBを超えるキャッシュがあり、カーネルが何かのためにより多くのメモリを必要とする場合、非常に迅速に解放できます。したがって、空きメモリの実際の量は3955MiBで、free
の下の2行目に示されています。使用されているスワップも表示されます。
つまり、ソフトウェアの応答が非常に遅いなどの問題が発生しない限り、スワップ領域の使用を気にしないでください。これはスラッシングの良い兆候です。
スラッシングをチェックするには、vmstat -s
を実行して統計を表示します。次のような2行が表示されます。
174085 pages swapped in
569123 pages swapped out
これは、スワップに書き込まれ、スワップから読み取られるページの数です。これらの数値が急速に増加しない限り、すべてが正常です-そして、swapは、システムを高速化する実際のアプリケーションとキャッシュのためにmoreメモリを提供します。