zoukankan      html  css  js  c++  java
  • linux下查看最消耗CPU、内存的进程

    Linux下显示系统进程的命令ps,最常用的有ps -ef 和ps aux。这两个到底有什么区别呢?讨论这个问题,要追溯到Unix系统中的两种风格

    System V风格      BSD  风格

     ps -ef                ps aux

    1.CPU占用最多的前10个进程: 

    ps auxw|head -1;ps auxw|sort -rn -k3|head -10 


    2.内存消耗最多的前10个进程 

    ps auxw|head -1;ps auxw|sort -rn -k4|head -10 


    3.虚拟内存使用最多的前10个进程 

    ps auxw|head -1;ps auxw|sort -rn -k5|head -10

    ps auxw

    u:以用户为主的格式来显示程序状况

    x:显示所有程序,不以终端机来区分 

    w:采用宽阔的格式来显示程序状况

    ps auxw|head -1

    输出表头

    sort -rn -k5

    -n是按照数字大小排序,-r是以相反顺序,-k是指定需要排序的栏位

    复制代码
    USER      //用户名
    %CPU      //进程占用的CPU百分比
    %MEM      //占用内存的百分比
    VSZ       //该进程使用的虚拟內存量(KB)
    RSS       //该进程占用的固定內存量(KB)resident set size
    STAT      //进程的状态
    START     //该进程被触发启动时间
    TIME      //该进程实际使用CPU运行的时间
    复制代码

    tty (Teletype terminal )与进程关联的终端

        串行端口终端(/dev/ttySn)
        伪终端(/dev/pty/) 
        控制终端(/dev/tty) 
        控制台终端(/dev/ttyn,   /dev/console) 
        虚拟终端(/dev/pts/n) 

     去掉x参数的结果

    ps auw | head -1; ps auw|sort -rn -k4 | head -10

    复制代码
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    xiaofu   25732  0.0  0.1 199360 29024 pts/0    Sl+  09:53   0:00 mongo 192.168.1.251:29017
    xiaoxie    853  0.0  0.0 105464   992 pts/1    T    11:38   0:00 /usr/bin/less -is
    xiaoxie    849  0.0  0.0 106080   684 pts/1    T    11:38   0:00 sh -c (cd "/usr/share/man" && (echo ".ll 14.8i"; echo ".nr LL 14.8i"; echo ".pl 1100i"; /usr/bin/gunzip -c '/usr/share/man/man1/ps.1.gz'; echo ".\""; echo ".pl 
    (nlu+10") | /usr/bin/gtbl | /usr/bin/nroff -c -mandoc 2>/dev/null | /usr/bin/less -is)
    xiaoxie    848  0.0  0.0 106080  1292 pts/1    T    11:38   0:00 sh -c (cd "/usr/share/man" && (echo ".ll 14.8i"; echo ".nr LL 14.8i"; echo ".pl 1100i"; /usr/bin/gunzip -c '/usr/share/man/man1/ps.1.gz'; echo ".\""; echo ".pl 
    (nlu+10") | /usr/bin/gtbl | /usr/bin/nroff -c -mandoc 2>/dev/null | /usr/bin/less -is)
    xiaoxie    845  0.0  0.0 101144  1036 pts/1    T    11:38   0:00 man ps
    xiaoxie  28600  0.0  0.0 105464   988 pts/1    T    10:56   0:00 /usr/bin/less -is
    xiaoxie  28596  0.0  0.0 106080   688 pts/1    T    10:56   0:00 sh -c (cd "/usr/share/man" && (echo ".ll 14.8i"; echo ".nr LL 14.8i"; echo ".pl 1100i"; /usr/bin/gunzip -c '/usr/share/man/man1/ps.1.gz'; echo ".\""; echo ".pl 
    (nlu+10") | /usr/bin/gtbl | /usr/bin/nroff -c -mandoc 2>/dev/null | /usr/bin/less -is)
    xiaoxie  28595  0.0  0.0 106080  1296 pts/1    T    10:56   0:00 sh -c (cd "/usr/share/man" && (echo ".ll 14.8i"; echo ".nr LL 14.8i"; echo ".pl 1100i"; /usr/bin/gunzip -c '/usr/share/man/man1/ps.1.gz'; echo ".\""; echo ".pl 
    (nlu+10") | /usr/bin/gtbl | /usr/bin/nroff -c -mandoc 2>/dev/null | /usr/bin/less -is)
    xiaoxie  28592  0.0  0.0 101144  1032 pts/1    T    10:56   0:00 man ps
    xiaoxie  28202  0.0  0.0 108320  1988 pts/1    Ss   10:41   0:00 -bash
    复制代码

    stat取值含义

    复制代码
    D      //无法中断的休眠状态(通常 IO 的进程);
    R      //正在运行可中在队列中可过行的;
    S      //处于休眠状态;
    T      //停止或被追踪;
    W      //进入内存交换 (从内核2.6开始无效);
    X      //死掉的进程 (基本很少见);
    Z      //僵尸进程;
    <      //优先级高的进程
    N      //优先级较低的进程
    L      //有些页被锁进内存;
    s      //进程的领导者(在它之下有子进程);
    l      //多线程,克隆线程(使用 CLONE_THREAD, 类似 NPTL pthreads);
    +      //位于后台的进程组;
    复制代码

    参考:

    linux下查看最消耗CPU、内存的进程

  • 相关阅读:
    ALV实时刷新功能的实现
    sap中批量导入Excel表格中的数据
    从se11新建的表维护中,给维护的数据做限制处理,例如,只允许输入vp开头的数据
    abap之ranges使用
    Abap中LOOP循环时使用AT FIRST. 传数过程中出现一串 ******** ------解决办法
    Django项目-创建第一个页面
    Python3创建django项目
    Python3安装Pyyaml
    Appium命令行环境搭建及参数使用
    c# ABP 中开启新的事务
  • 原文地址:https://www.cnblogs.com/zhuyeshen/p/10969206.html
Copyright © 2011-2022 走看看