我正在编写一个程序来测试我们系统上的一些内存使用指标,我想达到目标内存消耗。meminflate.exe -G 103.1
如果您想占用103.1 GB
内存,可以通过执行我的程序。
当我运行 时meminflate.exe -G 63.3
,我看到顶部显示VIRT
为63.5
(好吧,相差不大),但RES
显示63
为top
并且它显示63.5
在htop
。我应该相信哪一个?我认为这htop
是正确的,但我想知道为什么那里会有差异。
答案1
您可以从以下位置获取 Rss(驻留集)的确切字节数/proc/<pid>/stat
:
echo $(($(cat /proc/$(pgrep -n meminflate.exe)/stat | cut -d' ' -f24)*4096))
解释一下:这读作/proc/<pid>/stat
(此处使用 找到 PID 编号pgrep
),用于cut
仅选择第 24 个字段(Rss)。然后将结果乘以 4096(Linux 上的正常页面大小)。您也可以只将其乘以 4 以获得 kiB 中的大小,或将其除以 256 以获得 MiB 中的大小。