问题描述
我有一个使用 pid 24257
运行的服务器进程,我想知道它使用了多少内存(为了估计要为 Kubernetes 中的同一进程分配多少资源)。根据 ps
(https://man7.org/linux/man-pages/man1/ps.1.html) 的手册页,可以使用 %mem
输出格式说明符获得:
%mem %MEM ratio of the process's resident set size
to the physical memory on the machine,expressed as a percentage. (alias pmem).
如果我运行这个,我得到
> ps -p 24257 -o %mem
%MEM
0.3
我不确定我是否理解此输出,因为我在具有 64 GB 内存的 MacBook Pro 上运行该进程,所以我希望(终端)进程在活动监视器中显示为使用 ~19 GB 内存。但是,运行的终端进程远不及此(它们最多约 900 Mb)。
有没有办法可以将内存使用情况作为绝对数字(以 Mb 为单位)?否则,如何确定用于此计算的“机器上的物理内存”?
解决方法
要将 Nate Eldredge 的评论转换为答案,首先,mail.uid('store',...
输出是一个百分比,因此 64 GB 的 0.3% 是 192 MB。
其次,0.3
输出应该给出常驻集大小:
rss
运行此命令给出
rss RSS resident set size,the non-swapped physical
memory that a task has used (in kilobytes).
(alias rssize,rsz).
~21 Mb 的输出与从 > ps -p 24257 -o %mem,rss
%MEM RSS
0.3 209908
输出得出的~19 Gb 的估计非常吻合。