服务器上内存紧张,连交换分区都被用去大半。于是想看看具体是哪些进程占用的内存, 这里通过命令列出内存占用排名前十的进程列表。
shell 命令:
ps -eo pid,ppid,cmd,%mem,rsz --sort=-rsz | head -n 11
输出:
PID PPID CMD %MEM RSZ
1171 1 /usr/share/elasticsearch/jd 41.0 13467256
141801 141776 /usr/sbin/varnishd -a :6081 13.1 4310192
8233 7954 /usr/local/mariadb/bin/mari 12.8 4211480
3362302 8254 php-fpm: pool www 0.5 188768
2659616 8254 php-fpm: pool www 0.5 169996
2659617 8254 php-fpm: pool www 0.5 168316
3361635 8254 php-fpm: pool www 0.4 157692
2659619 8254 php-fpm: pool www 0.4 156240
2736588 8254 php-fpm: pool www 0.4 153512
3361516 8254 php-fpm: pool www 0.4 145600
参数说明
- ps -eo pid,ppid,cmd,%mem,rsz:ps 命令用于查看进程信息。 -e 选项表示显示所有进程,-o 选项用于指定输出格式,这里我们输出进程 ID(pid)、父进程 ID(ppid)、命令(cmd)、内存使用率(%mem)和常驻内存集大小(rsz,以 KB 为单位)。
- --sort=-rsz:按照常驻内存集大小(rsz)进行降序排序,-表示降序。
- head -n 11:head命令用于获取前几行的内容,这里获取前 11 行,因为第一行是标题行,后面 10 行是排名前十的进程信息。
动态实时更新
watch -n 1 "ps -eo pid,ppid,cmd,%mem,rsz --sort=-rsz | head -n 11"
watch 命令用于周期性地执行一个命令并显示结果。-n 1 选项表示每 1 秒执行一次后面的 ps 命令组合。
参数太多记不住
不过在不是自己的服务器上,也不太好安装别的工具,暂时用系统内置的工具就挺好的。
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式