本文收录于 GitHub 日问: DailyQuestion,内含大厂内推机会、面经大全及若干面试题,每天学习五分钟,一年进入大厂中。
通过 ps
可以获知一个进程所占用的内存
$ ps -O rss -p 3506
PID RSS S TTY TIME COMMAND
3506 6984 S pts/1 00:00:00 vim
复制代码
如果要监控内存,肯定使用对进程的命令 pidstat
(PS: 这名字一听就知道是干嘛的)
# -r 显示内存信息
# -p 指定 pid
# 1: 每个一秒打印一次
$ pidstat -r -p 3506 1
Linux 3.10.0-957.21.3.el7.x86_64 (shanyue) 11/04/19 _x86_64_ (2 CPU)
20:47:35 UID PID minflt/s majflt/s VSZ RSS %MEM Command
20:47:36 0 3506 0.00 0.00 139940 6984 0.18 vim
20:47:37 0 3506 0.00 0.00 139940 6984 0.18 vim
20:47:38 0 3506 0.00 0.00 139940 6984 0.18 vim
20:47:39 0 3506 0.00 0.00 139940 6984 0.18 vim
20:47:40 0 3506 0.00 0.00 139940 6984 0.18 vim
20:47:41 0 3506 0.00 0.00 139940 6984 0.18 vim
复制代码
pidstat
是属于 sysstat
下的 linux 性能工具,但在 mac 中,如何定位内存的变化?此时可以使用的 top/htop
$ htop -p 31796
复制代码
总结
简而言之,有以下三个命令
pidstat -r
htop/top -p
ps -O rss -p
关于更多指标的监控可以参考我的文章: linux 各项监控指标小记