プロセスのスワップ使用量とアイドルまたはmeminfoスワップ使用量出力の違い

プロセスのスワップ使用量とアイドルまたはmeminfoスワップ使用量出力の違い

Linuxシステムのすべてのスワップメモリ​​使用量を計算しようとしていますが、プロセスのすべてのスワップ使用量の合計(下の行を使用して計算)と出力の間にfree違いがありますmeminfo

総スワップ使用量を計算します。

for file in /proc/*/status ; do grep VmSwap $file; done | grep kB | grep -v "0 kB"

スワップの使用に影響を与える他の要因があるようです。

答え1

少なくとも2人のExchangeユーザーがありません。

  1. tmpfs:インストールされているすべてのtmpfsインスタンス(通常、少なくとも/ tmpおよび/ runおよび他のディレクトリ)はスワップスペースとしてサポートされています。通常、tmpfsのデータはカーネルのページキャッシュにあります。ただし、システムにメモリが不足し始めると、データを保存しながら他の作業のためのスペースを確保するためにこのデータを強制的に交換する必要があります。私が知っている限り、tmpfs使用量はスワップ使用量を計算するときにどのプロセスにも含まれません。 (実用的な観点から、特定のプロセスに特定のファイルを含めることができないように、どのプロセスにも含めることはできません。) Hugetlbfsインスタンスも同様です(hugetlbfsは特別なタイプのtmpfsです)。
  2. 共有メモリーセグメント:名前付きPOSIX共有メモリーセグメントの場合、データは最終的に/ dev / shmに保存されます。このセグメント自体は tmpfs マウントポイントであり、匿名共有メモリセグメントの場合には該当します (ただし、わかりません)。 、試してテストするための忍耐や技術なし)スペースの使用も特定のプロセスを考慮しません。

他のスワップユーザーもいるかもしれませんが、私が確認した非プロセススワップユーザーはこの2人だけです。

関連情報