• Linux 查看进程资源--ps、top命令


    1,ps命令

           ps能够给出当前系统中进程的快照。它能捕获系统在某一事件的进程状态

            命令参数:
             a                                      显示所有进程
            -a                                      显示同一终端下的所有程序
            -A                                     显示所有进程
             c                                      显示进程的真实名称
            -N                                     反向选择
            -e                                      等于“-A”
             e                                      显示环境变量
             f                                       显示程序间的关系
            -H                                     显示树状结构
             r                                       显示当前终端的进程
            T                                       显示当前终端的所有程序
            u                                       指定用户的所有进程
          -au                                      显示较详细的资讯
          -aux                                    显示所有包含其他使用者的行程 
        -C<命令>                             列出指定命令的状况
       --lines<行数>                         每页显示的行数
      --width<字符数>                     每页显示的字符数
       --help                                      显示帮助信息
       --version                                 显示版本显示


    常用实例:

            ps -u root                            查看root用户的进程

            ps -ef                                    显示所有进程信息,包括命令行

            ps  aux                                  列出目前所有的正在内存当中的程序

            ps -aux --sort -pcpu | less        根据CPU使用升序排序

            ps-aux --sort -pmem | less        根据内存使用大小排序

    [root@localhost ~]# ps aux

    USER      PID       %CPU    %MEM    VSZ    RSS    TTY    STAT    START    TIME    COMMAND
    smmsp    3521    0.0    0.7    6556    1616    ?    Ss    20:40    0:00    sendmail: Queue runner@01:00:00 f
    root    3532    0.0    0.2    2428    452    ?    Ss    20:40    0:00    gpm -m /dev/input/mice -t imps2
    htt    3563    0.0    0.0    2956    196    ?    Ss    20:41    0:00    /usr/sbin/htt -retryonerror 0
    htt    3564    0.0    1.7    29460    3704    ?    Sl    20:41    0:00    htt_server -nodaemon
    root    3574    0.0    0.4    5236    992    ?    Ss    20:41    0:00    crond
    xfs    3617    0.0    1.3    13572    2804    ?    Ss    20:41    0:00    xfs -droppriv -daemon
    root    3627    0.0    0.2    3448    552    ?    SNs    20:41    0:00    anacron -s
    root    3636    0.0    0.1    2304    420    ?    Ss    20:41    0:00    /usr/sbin/atd
    dbus    3655    0.0    0.5    13840    1084    ?    Ssl    20:41    0:00    dbus-daemon-1 --system

    ps aux显示项解析:

    USER    用户名
    UID    用户ID(User ID)
    PID    进程ID(Process ID)
    PPID    父进程的进程ID(Parent Process id)
    SID    会话ID(Session id)
    %CPU    进程的cpu占用率
    %MEM    进程的内存占用率
    VSZ    进程所使用的虚存的大小(Virtual Size)
    RSS    进程使用的驻留集大小或者是实际内存的大小,Kbytes字节
    TTY    与进程关联的终端(tty)
    STAT    进程的状态:进程状态使用字符表示的(STAT的状态码)
        R 运行                正在运行或在运行队列中等待
        S 睡眠                休眠中, 受阻, 在等待某个条件的形成或接受到信号
        I 空闲    
        Z 僵死                 进程已终止, 但进程描述符存在
        D 不可中断         收到信号不唤醒和不可运行, 进程必须等待直到有中断发生。
        T 终止                 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行。
        P 等待交换页
        W 无驻留页          没有足够的记忆体分页可分配。
        X 死掉的进程
        < 高优先级进程                    高优先序的进程
        N 低优先    级进程                低优先序的进程
        L 内存锁页                             有记忆体分页分配并缩在记忆体内
        s 进程的领导者(在它之下有子进程);
        l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads)

        + 位于后台的进程组 

    START    进程启动时间和日期
    TIME    进程使用的总cpu时间
    COMMAND    正在执行的命令行命令


    2,top命令

    [root@localhost ~]#  top  (默认3秒刷新)


    top - 12:38:33 up 50 days, 23:15,  7 users,  load average: 60.58, 61.14, 61.22

    Tasks: 203 total,  60 running, 139 sleeping,   4 stopped,   0 zombie

    Cpu(s) : 27.0%us, 73.0%sy,  0.0%ni,  90%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

    Mem:  1939780k total,  1375280k used,   564500k free,   109680k buffers

    Swap:  4401800k total,   497456k used,  3904344k free,   848712k cached

      PID  USER     PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND          

     4338 oracle    25   0  627m 209m 207m R    0  11.0 297:14.76 oracle    

     4267 oracle    25   0  626m 144m 143m R    6  7.6  89:16.62 oracle    

     3458 oracle    25   0  672m 133m 124m R    0  7.1   1283:08 oracle    

     3478 oracle    25   0  672m 124m 115m R    0  6.6   1272:30 oracle    

     3395 oracle    25   0  672m 122m 113m R    0  6.5   1270:03 oracle    

     3480 oracle    25   0  672m 122m 109m R    8  6.4   1274:13 oracle    

     3399 oracle    25   0  672m 121m 110m R    0  6.4   1279:37 oracle  

    TOP前五行统计信息

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

    1. 第一行是任务队列信息

    同 uptime 命令的执行结果一样

     13:22:30 up 8 min,  7 users,  load average: 0.14, 0.38, 0.25

    其内容如下:

    12:38:33

    当前时间

    up 50days

    系统运行时间

    7 user

    当前登录用户数

    load average: 0.06, 0.60, 0.48

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

    2. 第二、三行为进程和CPU的信息

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

    Tasks: 203 total

    进程总数

    60 running

    正在运行的进程数

    139 sleeping

    睡眠的进程数

    4 stopped

    停止的进程数

    0 zombie

    僵尸进程数

    Cpu(s): 27%us

    用户空间占用CPU百分比

    73.0% sy

    内核空间占用CPU百分比

    0.0% ni

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

    90% id

    空闲CPU百分比

    0.0% wa

    等待输入输出的CPU时间百分比





    3. 第四五行为内存信息。

    内容如下:

    Mem: 191272k total

    物理内存总量

    173656k used

    使用的物理内存总量

    17616k free

    空闲内存总量

    22052k buffers

    用作内核缓存的内存量

    Swap: 192772k total

    交换区总量

    0k used

    使用的交换区总量

    192772k free

    空闲交换区总量

    123988k cached

    缓冲的交换区总量,内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的交换区的大小。相应的内存再次被换出时可不必再对交换区写入


    进程信息解释:


    列名

    含义

    PID

    进程id

    PPID

    父进程id

    RUSER

    Real user name

    UID

    进程所有者的用户id

    USER

    进程所有者的用户名

    GROUP

    进程所有者的组名

    TTY

    启动进程的终端名

    PR

    优先级

    NI

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

    P

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

    %CPU

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

    TIME

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

    TIME+

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

    %MEM

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

    VIRT

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

    SWAP

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

    RES

    进程使用的、未被换出的物理内存大小,单位kb

    RES=CODE+DATA

    CODE

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

    DATA

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

    SHR

    共享内存大小,单位kb

    nFLT

    页面错误次数

    nDRT

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

    S

    进程状态
                D=不可中断的睡眠状态
                R=运行
                S=睡眠
                T=跟踪/停止
                Z=僵尸进程

    COMMAND

    命令名/命令行

    WCHAN

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

    Flags

    任务标志,参考 sched.h

                             













    本文转自super李导51CTO博客,原文链接:http://blog.51cto.com/superleedo/1886802 ,如需转载请自行联系原作者




  • 相关阅读:
    复合索引的列顺序判断
    sqlserver 存储过程中使用临时表到底会不会导致重编译
    Sql Server参数化查询之where in和like实现详解
    浅析SqlServer简单参数化模式下对sql语句自动参数化处理以及执行计划重用
    SQL优化 查询语句中,用 inner join 作为过滤条件和用where作为过滤条件的区别
    通过手动创建统计信息优化sql查询性能案例
    SQL Server 并行操作优化,避免并行操作被抑制而影响SQL的执行效率
    SQL Server 执行计划利用统计信息对数据行的预估原理二(为什么复合索引列顺序会影响到执行计划对数据行的预估)
    C#实现文件数据库
    ASP.NET DropDownList1_SelectedIndexChanged使用
  • 原文地址:https://www.cnblogs.com/twodog/p/12138684.html
Copyright © 2020-2023  润新知