上部のVSIZE値がpsの仮想セットサイズ(VSZ)値と異なるのはなぜですか?

上部のVSIZE値がpsの仮想セットサイズ(VSZ)値と異なるのはなぜですか?

psVSZ inがアプリケーションに割り当てられた完全なアドレス空間であることがわかり、時にはvsize(psLinuxのマニュアルページで参照)としてエイリアスが割り当てられますが、VSIZEの定義は何ですかtop? iPhoneの最高出力はLinuxの最高出力とは異なります。

 PID COMMAND      %CPU   TIME   #TH #PRTS #MREGS  RPRVT  RSHRD  RSIZE  VSIZE
 1875 emma         0.0%  0:30.83   7   139    932 17868K  5328K    29M   181M

root# ps -eo pid,rss,vsz|grep 1875
 1875  29324   441324

ベストアンサー1

Linuxメモリシステムは、多くのメモリ最適化ユーティリティとメモリ共有ルーチンでいっぱいで、メモリがどのように共有され消費されるかについてのアイデアを面倒なアプローチにします。 psおよび他のps関連コマンドの出力は、ファイルシステムのデータに従って処理されます/proc。特にpsRSS(常駐メモリサイズ)とVSIZE(仮想メモリサイズ)の両方が重要ですが、VSIZEは正確なメモリ使用量を示していません。初期化がまだ引用されていない可能性があります。プログラムにリンクされているライブラリがたくさんあるかもしれませんが、実際のプログラムが実行されたときに参照されていないため、まだロードされていないようです。 RSSはプログラムによって実際に使用されるメモリ全体を提供しますが、割り当てられたメモリの大部分は同じプロセスの他のインスタンスや他のプロセスと共有される可能性があるため、メモリ消費の実際の画像を提供できない可能性があります。下を見下ろすと/proc/<processid>/mapsメモリ使用量が大まかに分かりますが、時には誤解を招くことがあります。コマンドラインで使用され、pmap -x <pid>伝播を表示するのに役立ちます。

多くの場合、より良いユーティリティfreeはとですvmstatfree現在、完全なメモリ消費の詳細が提供されており、vmstatを使用して更新頻度を確認できます。

おすすめ記事