linux 查看内存占用排名前十的进程

文章目录

    服务器上内存紧张,连交换分区都被用去大半。于是想看看具体是哪些进程占用的内存,
    这里通过命令列出内存占用排名前十的进程列表。

    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 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式