zoukankan      html  css  js  c++  java
  • Linux ps与top命令

    Linux ps与top命令

    这两个命令都是查看系统进程信息的命令,但是用处有点儿不同

    1.ps命令--提供系统过去信息的一次性快照

    也就是说ps命令能够查看刚刚系统的进程信息  命令:ps aux或者ps lax
    [root@tao ~]# ps aux
    USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root          1  0.0  0.1 125188  3792 ?        Ss   17:12   0:00 /usr/lib/systemd/systemd --s
    root          2  0.0  0.0      0     0 ?        S    17:12   0:00 [kthreadd]
    root          3  0.0  0.0      0     0 ?        S    17:12   0:00 [ksoftirqd/0]
    root          5  0.0  0.0      0     0 ?        S<   17:12   0:00 [kworker/0:0H]
    root          7  0.0  0.0      0     0 ?        S    17:12   0:00 [migration/0]
    root          8  0.0  0.0      0     0 ?        S    17:12   0:00 [rcu_bh]
    root          9  0.0  0.0      0     0 ?        S    17:12   0:00 [rcu_sched]
    root         10  0.0  0.0      0     0 ?        S    17:12   0:00 [watchdog/0]
    解释如下:
    VSZ--进程的虚拟内存大小
    RSS--驻留集的大小,可以理解为内存中页的数量
    TTY--控制终端的ID
    STAT--也就是当前进程的状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
    STRAT--这个很简单,就是该进程启动的时间
    TIME--进程已经消耗的CPU时间,注意是消耗CPU的时间
    COMMOND--命令的名称和参数
    而]#ps lax  可以看到父进程,谦让值以及该进程正在等待的资源等待

    ps 

    一:ps -l

    查看属于自己这次登录的PID与相关信息列出来(只与自己的bash有关)  

    F:代表这个进程标志(process flags),说明这个进程的权限,常见号码有:

      若为4表示此进程的权限为root; 

    若为1则表示此子进程仅可进行复制(fork)而无法执行(exec); 

    S:代表这个进程的状态(STAT),主要的状态有:   

    R(Running):该进程正在运行中;  

    S(Sleep):该进程目前正在睡眠状态(idle),但可以被唤醒(signal);  

    D:不可被唤醒的状态,通常这个进程可能在等待I/O的情况(ex>打印);  

    T:停止状态(stop),可能是在工作控制(后台暂停)或出错(traced)状态;  

    Z(Zombie):“僵尸”状态,该进程已经终止但却无法被删除至内存外。  

    UID/PID/PPID:代表此进程被该UID所拥有的/进程的PID号码/此进程的父进程PID号码。  

    C:代表CPU使用率,单位为百分比。  

    PRI/NI:Priority/Nice的缩写,代表此进程被CPU所执行的优先级,数值越小代表此进程越快被CPU执行。  

    ADDR/SZ/WCHAN:都与内存有关,ADDR是kernel function,指出该进程在内存的哪个部分,如果是个running的进程,一般会显示“—”。SZ代表此进程用掉多少内存。WCHAN表示目前进程是否在运行中,同样,若为“—”表示正在运行中。  

    TTY:登录者的终端位置,若为远程登录使用动态终端接口(pts/n)。 

    TIME:使用CPU的时间,注意,是此进程实际花费CPU运行的时间,而不是系统时间。 

    CMD:就是command的缩写,造成此程序的触发进程的命令为何。

    ps aux  

    查看系统所有进程数据(静态) USER:该进程属于哪个用户账号的;

    PID:该进程的进程标识符; 

    %CPU:该进程使用掉的CPU资源百分比; 

    %MEM:该进程所占用的物理内存百分比;

    VSZ:该进程所占用的虚拟内存量(KB); 

    RSS:该进程所占用的固定的内存量(KB); 

    TTY:该进程在哪个终端机上面运行,若与终端机无关则显示?另外,tty1~tty6是本机上面的登录者程序,若为pts/0等的,则表示为由网络连接进主机的进程; STAT:该进程目前的状态,状态显示与ps -l的S标识相同(R/S/T/Z); 

    TIME:该进程实际使用CPU的时间;

    COMMAND:该进程的实际命令。   

    2.top命令反应的是系统进程动态信息,默认10s更新一次

    [root@localhost ~]# top
    top - 16:41:49 up 9 days,  6:30,  8 users,  load average: 0.00, 0.02, 0.05
    Tasks: 575 total,   1 running, 574 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    KiB Mem : 13191878+total, 12246240+free,  4453952 used,  5002420 buff/cache
    KiB Swap: 13107200+total, 13107200+free,        0 used. 12622788+avail Mem 
    
      PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                  
    37085 root      20   0  158124   2684   1536 R   0.7  0.0   0:00.26 top                      
     2273 gdm       20   0 1312940  20736  14060 S   0.3  0.0   3:04.03 gnome-settings-          
    32432 jira      20   0 20.381g 2.530g  30244 S   0.3  2.0  11:18.26 java                     
        1 root      20   0  197684  10896   4076 S   0.0  0.0   2:19.45 systemd                  
        2 root      20   0       0      0      0 S   0.0  0.0   0:00.50 kthreadd                 
        3 root      20   0       0      0      0 S   0.0  0.0   0:00.18 ksoftirqd/0              
        5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H             
        7 root      rt   0       0      0      0 S   0.0  0.0   0:00.50 migration/0     
    顶部始终显示的是系统当前最活跃的进程,此时还可以接受用户的键盘输入向进程发送信号等待
    ps和top都是从/proc目录下读取进程的状态信息,内核把当前系统进程的各种有用信息都放在这个伪目录下。
     
    二:top (动态) 

     统计信息区前五行是系统整体的统计信息。 

     第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下:  

    16:41:49                      当前时间  

    up 9 days  ,6:30          开机到目前为止所经过的时间   

    8 users                          当前登录用户数  

    0.00, 0.03, 0.05            系统负载,即任务队列的平均长度。三个数值分别为1分钟、5分钟、15分钟前到现在的平均值。 

     第二行为进程信息,内容如下:  

     Tasks:  575 total       进程总数  

     1 running                正在运行的进程数  

     574sleeping             睡眠的进程数   

     0 stopped               停止的进程数  

     0 zombie                 僵尸进程数 

     第三行为CPU信息,当有多个CPU时,这些内容可能会超过两行。内容如下:   

    Cpu(s): 

     0.0%us                      用户空间占用CPU百分比   

     0.0% sy                     内核空间占用CPU百分比  

     0.0% ni                      用户进程空间内改变过优先级的进程占用CPU百分比  

     100.0% id                      空闲CPU百分比  

     0.0% wa                     等待输入输出(IO)的CPU时间百分比  

     0.0% hi                      cpu处理硬件中断的时间;   

     0.0% si                      cpu处理软中断的时间;  

    第四行为内存信息,内容如下:  

     Mem: 1034872k total          物理内存总量  

     974264k used                    使用的物理内存总量   

     60608k free                       空闲内存总量  

     226140k buffers                 用作内核缓存的内存量  

    第五行为SWAP信息  

     Swap: 1534072k total        交换区总量  

     0used                               使用的虚拟内存总量   

     1534072k free                   空闲交换区总量   

     548268k cached                 缓冲的交换区总量。 

     第六行往后是进程列表,常见的这几列的意义分别为:   

    PID(进程号), USER(运行用户),PR(优先级),NI(任务nice值),VIRT(虚拟内存用量),RES(物理内存用量), SHR(共享内存用量),S(进程状态),%CPU(CPU占用比),%MEM(内存占用比),TIME+(累计CPU占用时间)。 

     除了这些信息之外,top还提供了很多命令能帮我们更好的解读这些信息,例如按”M”键可以按内存用量进行排序; 

     按”P”可以按CPU使用量进行排序,这样一来对于分析系统瓶颈很有帮助;此外,

    按“f”可以进入交互页面,选择指定的列显示; 

    ”r”可以改变一个进程的nice值;”k”可以向一个进程发信号;  

     ”z”可以使用彩色显示。进程信息区统计信息区域的下方显示了各个进程的详细信息。

       

    首先来认识一下各列的含义。   

    序号    列名    含义   

    a    PID       进程id   

    b    PPID      父进程id  

    c    RUSER     Real user name  

    d    UID       进程所有者的用户id  

    e    USER      进程所有者的用户名  

    f    GROUP     进程所有者的组名  

    g    TTY       启动进程的终端名。不是从终端启动的进程则显示为 ? 

    h    PR        优先级  

    i    NI        nice值。负值表示高优先级,正值表示低优先级   

    j    P         最后使用的CPU,仅在多CPU环境下有意义 

    k    %CPU     上次更新到现在的CPU时间占用百分比   

    l    TIME     进程使用的CPU时间总计,单位秒  

    m    TIME+    进程使用的CPU时间总计,单位1/100秒   

    n    %MEM     进程使用的物理内存百分比  

    o    VIRT     进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES   

    p    SWAP     进程使用的虚拟内存中,被换出的大小,单位kb。  

    q    RES      进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA   

    r    CODE     可执行代码占用的物理内存大小,单位kb  

    s    DATA     可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb  

    t    SHR      共享内存大小,单位kb   

    u    nFLT     页面错误次数  

    v    nDRT     最后一次写入到现在,被修改过的页面数。  

    w    S        进程状态。  

    x    COMMAND  命令名/命令行  

    y    WCHAN    若该进程在睡眠,则显示睡眠中的系统函数名   

    z    Flags    任务标志,参考 sched.h               

    D=不可中断的睡眠状态               

    R=运行               

    S=睡眠  

    T=跟踪/停止               

    Z=僵尸进程  

     默认情况下仅显示比较重要的  PID、USER、PR、NI、VIRT、RES、SHR、S、%  CPU、%MEM、TIME+、COMMAND  列。可以通过下面的快捷键来更改显示内容。  

     更改显示内容通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z  即可显示或隐藏对应的列,最后按回车键确定。

    相关链接:https://www.cnblogs.com/zhoug2020/p/6336453.html

  • 相关阅读:
    How to build Linux system from kernel to UI layer
    Writing USB driver for Android
    Xposed Framework for Android 8.x Oreo is released (in beta)
    Linux Smartphone Operating Systems You Can Install Today
    Librem 5 Leads New Wave of Open Source Mobile Linux Contenders
    GUADEC: porting GNOME to Android
    Librem 5 – A Security and Privacy Focused Phone
    GNOME and KDE Join Librem 5 Linux Smartphone Party
    Purism计划推出安全开源的Linux Librem 5智能手机
    国产系统之殇:你知道的这些系统都是国外的
  • 原文地址:https://www.cnblogs.com/yinfutao/p/10622371.html
Copyright © 2011-2022 走看看