Linux の仮想記憶システムはそれほど単純ではありません。すべての RSS フィールドを合計して、報告された値 used
を取得することはできません。 free
まで .これには多くの理由がありますが、最大のものをいくつか取り上げます。
-
プロセスがフォークすると、親と子の両方が同じ RSS で表示されます。ただし、Linux はコピー オン ライトを採用しているため、両方のプロセスが実際には同じメモリを使用しています。プロセスの 1 つがメモリを変更した場合にのみ、メモリが実際に複製されます。
これにより、free
が発生します。top
よりも小さい数値 RSS 合計。 -
RSS 値には共有メモリは含まれません。共有メモリはどのプロセスにも所有されていないため、
top
RSS には含まれません。
これにより、free
が発生します。top
より大きい数 RSS 合計。