Linux工具 - TOP下的任务管理器


top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。

    top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。

top - 13:49:38 up 14 days, 15:44,  1 user,  load average: 0.01, 0.02, 0.05
Tasks: 111 total,   2 running, 109 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 :  1882352 total,   224980 free,   222020 used,  1435352 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  1450992 avail Mem

PID USER   PR   NI   VIRT   RES   SHR  S  %CPU %MEM   TIME+   COMMAND
1  root   20   0   43516   3828   2560 S  0.0  0.2   1:12.57 systemd
2  root   20   0     0    0    0  S  0.0  0.0   0:00.01 kthreadd
3  root   20   0     0    0    0  S  0.0  0.0   0:21.61 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.00 migration/0
8  root   20   0     0    0    0  S  0.0  0.0   0:00.00 rcu_bh
9  root   20   0     0    0    0  S  0.0  0.0   0:46.77 rcu_sched

第一行

    13:49:38:系统当前时间

    14 days, 15:44:系统开机到现在经过了多少时间

    1 users : 当前2用户在线

    load average: 0.01, 0.02, 0.05: 系统1分钟、5分钟、15分钟的CPU负载信息

第二行

    Tasks:任务;

        111 total:很好理解,就是当前有87个任务,也就是87个进程。

        2 running:2个进程正在运行

        109 sleeping:109个进程睡眠

        0 stopped:停止的进程数

        0 zombie:僵死的进程数

第三行

    Cpu(s):表示这一行显示CPU总体信息

        0.0%us:用户态进程占用CPU时间百分比,不包含renice值为负的任务占用的CPU的时间。

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

        0.0%ni:改变过优先级的进程占用CPU的百分比

        100%id:空闲CPU时间百分比

        0.0%wa:等待I/O的CPU时间百分比

        0.0%hi:CPU硬中断时间百分比

        0.0%si:CPU软中断时间百分比

        注:这里显示数据是所有cpu的平均值,如果想看每一个cpu的处理情况,按1即可;折叠,再次按1;

第四行

    Men:内存的意思

        1882352 total:物理内存总量

        224980 used:使用的物理内存量

        222020 free:空闲的物理内存量

        1435352 buffers:用作内核缓存的物理内存量

第五行

    Swap:交换空间

        0 total:交换区总量

        0used:使用的交换区量

        0 free:空闲的交换区量

        1450992 cached:缓冲交换区总量

进程信息

    再下面就是进程信息:

        PID:进程的ID

        USER:进程所有者

        PR:进程的优先级别,越小越优先被执行

        NInice:值

        VIRT:进程占用的虚拟内存

        RES:进程占用的物理内存

        SHR:进程使用的共享内存

        S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数

        %CPU:进程占用CPU的使用率

        %MEM:进程使用的物理内存和总内存的百分比

        TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。

        COMMAND:进程启动命令名称


【交互操作指令】

下面列出一些常用的 top命令操作指令

    ·    q:退出top命令

    ·    <Space>:立即刷新

    ·    s:设置刷新时间间隔

    ·    c:显示命令完全模式

    ·    t::显示或隐藏进程和CPU状态信息

    ·    m:显示或隐藏内存状态信息

    ·    l:显示或隐藏uptime信息

    ·    f:增加或减少进程显示标志

    ·    S:累计模式,会把已完成或退出的子进程占用的CPU时间累计到父进程的MITE+

    ·    P:按%CPU使用率排行

    ·    T:按MITE+排行

    ·    M:按%MEM排行

    ·    u:指定显示用户进程

    ·    r:修改进程renice值

    ·    kkill:进程

    ·    i:只显示正在运行的进程

    ·    W:保存对top的设置到文件^/.toprc,下次启动将自动调用toprc文件的设置。

    ·    h:帮助命令。

    ·    q:退出

注:强调一下,使用频率最高的是P、T、M,因为通常使用top,我们就想看看是哪些进程最耗cpu资源、占用的内存最多; 注:通过”shift + >”或”shift + <”可以向右或左改变排序列 如果只需要查看内存:可用free命令。只查看uptime信息(第一行),可用uptime命令;


【实例】

例1:多核CPU监控

在top基本视图中,按键盘数字“1”,可监控每个逻辑CPU的状况;

[root@wzxaini9 ~]# top
top - 14:07:11 up 14 days, 16:01,  1 user,  load average: 0.00, 0.01, 0.05
Tasks: 111 total,   2 running, 109 sleeping,   0 stopped,   0 zombie
%Cpu0  :  0.3 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  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 :  1882352 total,   224184 free,   222128 used,  1436040 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  1450844 avail Mem

例2:高亮显示当前运行进程

在top基本视图中,按键盘“b”(打开/关闭加亮效果);

例3:显示完整的程序命令

命令:top -c

top - 14:09:42 up 14 days, 16:04,  1 user,  load average: 0.00, 0.01, 0.05
Tasks: 111 total,   2 running, 109 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.3 sy,  0.0 ni, 98.7 id,  0.7 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1882352 total,   224076 free,   222208 used,  1436068 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  1450820 avail Mem 

PID USER   PR   NI   VIRT   RES   SHR S  %CPU %MEM   TIME+  COMMAND
1  root   20   0   43516   3828  2560 S  0.0  0.2   1:12.56 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
2  root   20   0     0    0    0 S  0.0  0.0   0:00.01 [kthreadd]
3  root   20   0     0    0    0 S  0.0  0.0   0:21.61 [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.00 [migration/0]
8  root   20   0     0    0    0 S  0.0  0.0   0:00.00 [rcu_bh]
9  root   20   0     0    0    0 R  0.0  0.0   0:46.77 [rcu_sched]

例4:显示指定的进程信息

命令:top -p pidid

top - 14:20:24 up 14 days, 16:14,  1 user,  load average: 0.02, 0.06, 0.07
Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1882352 total,   223416 free,   222268 used,  1436668 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  1450744 avail Mem 

PID USER   PR   NI   VIRT   RES   SHR S  %CPU %MEM   TIME+  COMMAND
1  root   20   0   43516   3828  2560 S  0.0  0.2   1:12.60 systemd

指定进程信息有多个时,需要结合其它工具将回车替换为,(-p 支持pid,pid,pid语法)


命令:top -p pgrep MULTI_PROCESS | tr “\n” ”,” | sed ‘s/,$//’

[root@wzxaini9 ~]# top -p `pgrep php | tr "\\n" "," | sed 's/,$//'`
top - 14:23:02 up 14 days, 16:17,  1 user,  load average: 0.02, 0.05, 0.06
Tasks:  17 total,   0 running,  17 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.7 us,  1.3 sy,  0.0 ni, 98.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1882352 total,   223208 free,   222308 used,  1436836 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  1450708 avail Mem 

PID USER   PR   NI   VIRT   RES   SHR S  %CPU %MEM   TIME+  COMMAND
3265 root   20   0  339788   15388  1384 S  0.0 0.8   1:31.39 php-fpm
3266 www   20   0  431616   28960  12984 S  0.0 1.5   0:28.50 php-fpm
3267 www   20   0  431304   28656  12904 S  0.0 1.5   0:29.03 php-fpm
3268 www   20   0  431340   28696  12944 S  0.0 1.5   0:28.74 php-fpm
3269 www   20   0  431336   28232  12464 S  0.0 1.5   0:29.33 php-fpm
3270 www   20   0  342764   24392   9496 S  0.0 1.3   0:28.60 php-fpm
3271 www   20   0  431340   28696  12948 S  0.0 1.5   0:29.52 php-fpm
3272 www   20   0  431148   28360  12716 S  0.0 1.5   0:29.49 php-fpm
3273 www   20   0  431228   28924  13160 S  0.0 1.5   0:28.85 php-fpm


【更强大的工具】

    htop 是一个 Linux 下的交互式的进程浏览器,可以用来替换Linux下的top命令。

    与Linux传统的top相比,htop更加人性化。它可让用户交互式操作,支持颜色主题,可横向或纵向滚动浏览进程列表,并支持鼠标操作。

    与top相比,htop有以下优点:

    ·    可以横向或纵向滚动浏览进程列表,以便看到所有的进程和完整的命令行。

    ·    在启动上,比top 更快。

    ·    杀进程时不需要输入进程号。

    ·    htop 支持鼠标操作。


上一篇 下一篇

评论

登录后可发表评论