zoukankan      html  css  js  c++  java
  • Linux查看进程

    1、ps 有很多参数,不需要全部记住,只需要记住最有用的那些参数。
    unix风格的参数
    比如:ps -ef查看系统上运行的所有进程 ps -l 会产生一个长格式的输出
     
    》UID:启动这些进程的用户
    》PID:进程ID
    》PPID:父进程的进程ID,如果该进程是由另一个进程启动的
    》C:进程生命周期中的CPU利用率
    》STIME:进程启动时的系统时间
    》TTY:进程启动时的终端设备
    》TIME:运行进程需要的累计CPU时间
    》CMD:启动的程序名称

    ps -V显示ps命令的版本号

    BSD类型的参数 ,参数前面都是不加破折号-的

    》VSZ:进程在内存中的大小,以千字节KB为单位
    》RSS:进程在未换出时占用的物理内存
    》STAT:代表当前进程状态的双字符状态码,比unix风格输出的单字符状态码(就是S列)更清楚的表示进程的当前状态,+:该进程运行在前台,<该进程运行在高优先级上,N该进程运行在低优先级上,L该进程有页面锁定在内存中,s该进程是控制进程,l该进程是多线程的
     
    GNU长参数
    可以和unix和BSD格式的参数混合使用,最常用的命令就是ps --forest显示进程的层级信息,并用ASCII字符绘出可爱的图案

     

    第一行:当前时间,系统的运行时间,登录的用户数以及系统的平均负载,平均负载有3个:最近1分钟,最近5分钟,最近15分钟,值越大说明负载越高,由于进程短期的突发性活动,出现最近1分钟的高负载值也很常见,但是如果最近15分钟内的平均负载都很高,就说明系统可能有问题。负载值取决于系统额硬件配置以及系统上通常运行的程序,通常系统的负载值超过2,就说明负系统比较繁忙了。

     

    us: user cpu time (or) % CPU time spent in user space
    sy: system cpu time (or) % CPU time spent in kernel space
    ni: user nice cpu time (or) % CPU time spent on low priority processes
    id: idle cpu time (or) % CPU time spent idle
    wa: io wait cpu time (or) % CPU time spent in wait (on disk)
    hi: hardware irq (or) % CPU time spent servicing/handling hardware interrupts
    si: software irq (or) % CPU time spent servicing/handling software interrupts
    st: steal time - - % CPU time in involuntary wait by virtual cpu while hypervisor is servicing another processor (or) % CPU time stolen from a virtual machine
     
    翻译一下:
    us:用户态使用的cpu时间比
    sy:系统态使用的cpu时间比
    ni:用做nice加权的进程分配的用户态cpu时间比
    id:空闲的cpu时间比
    wa:cpu等待磁盘写入完成时间
    hi:硬中断消耗时间
    si:软中断消耗时间
    st:虚拟机偷取时间
    cpu消耗在kernel space的时候就是sy(系统态使用的cpu百分比),cpu消耗在user space的时候就是us(用户态使用的cpu百分比)
    如果程序都没什么问题,那么是没有hi和si的,但是实际上有个硬中断和软中断的概念。比如硬中断,cpu在执行程序的时候,突然外设硬件(比如硬盘出现问题了)机器需要立刻通知cpu进行现场保存工作。这个时候会cpu会出现上下文切换。就是cpu会有一部分时间会被硬中断占用了,这个时间就是hi。相类似,si是软中断的cpu占用时间,软中断是由软件的指令方式触发的。
    ni是nice的意思,nice是什么呢,每个linux进程都有个优先级,优先级高的进程有优先执行的权利,这个叫做pri。进程除了优先级外,还有个优先级的修正值。即比如你原先的优先级是20,然后修正值为-2,那么你最后的进程优先级为18。这个修正值就叫做进程的nice值。
    wa指的是CPU等待磁盘写入完成的时间,就是说前提是要进行IO操作,在进行IO操作的时候,CPU等待时间。比如上面那个程序,最后一步,从系统空间到dst硬盘空间的时候,如果程序是阻塞的,那么这个时候cpu就要等待数据写入磁盘才能完成写操作了。所以这个时候cpu等待的时间就是wa。
    所以如果一台机器看到wa特别高,那么一般说明是磁盘IO出现问题,可以使用iostat等命令继续进行详细分析。
    st的名字很生动,偷取。。。是专门对虚拟机来说的,一台物理是可以虚拟化出几台虚拟机的。在其中一台虚拟机上用top查看发现st不为0,就说明本来有这么多个cpu时间是安排给我这个虚拟机的,但是由于某种虚拟技术,把这个cpu时间分配给了其他的虚拟机了。这就叫做偷取。
    剩下的id就是除了上面那么多cpu处理上下文以外的cpu时间片。当然在这些时间片上,cpu是空闲的。top的所有这些cpu时间应该是相加为100%的。

     

    PID:进程ID
    USER:进程所属主的名字
    PR:进程的优先级
    NI:进程的谦让度
    VIRT:进程占用的虚拟内存总量
    RES:进程占用的物理内存总量
    SHR:进程和其他进程共享的内存总量
    S:进程的状态,D可中断的休眠状态,R在运行,S休眠,T跟踪或者停止,Z僵化
    %CPU:进程使用的CPU时间比例
    %MEM:进程使用的内存占可用内存的比例
    TIME+:自进程启动到目前为止的CPU时间总量
    COMMAND:进程所对应的命令行名称,,也就是启动的程序名
     

  • 相关阅读:
    HDU 4947 GCD Array 容斥原理+树状数组
    Codeforces Round #363 (Div. 2)
    白书 博弈学习
    2016 Multi-University Training Contest 1
    KM算法 PK 最小费用最大流
    final 发布 领跑衫获奖感想
    2016"百度之星"
    爆打团队 2016.05.05 站立会议
    爆打团队 四则运算 beta视频
    爆打团队 2016.04.27 站立会议
  • 原文地址:https://www.cnblogs.com/ni-huang-feng-wu/p/14774127.html
Copyright © 2011-2022 走看看