top 标签文章 - 李海鑫个人博客

(2008-5-1)用 top 命令查看 CPU 使用率

编辑文章 没有评论 :

前言

在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要。在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况。运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 -- 用基于 top 的命令,可以控制显示方式等等。退出 top 的命令为 q (在 top 运行中敲 q 键一次)。

本文HTML永久地址 doc

运行

在命令行中输入 “top” 即可启动 top ,运行后如下图所示:

top - 14:56:14 up 1 day,  7:15,  2 users,  load average: 0.28, 0.32, 0.26   ←第一部分
Tasks:  54 total,   1 running,  53 sleeping,   0 stopped,   0 zombie        ←系统信息栏
Cpu(s):  0.7% us,  2.5% sy,  0.0% ni, 96.8% id,  0.0% wa,  0.0% hi,  0.0% si
Mem:    199128k total,   193748k used,     5380k free,     5436k buffers
Swap:   409648k total,   204668k used,   204980k free,    16444k cached

q                     ←第二部分 -- 中间部分的内部命令提示栏,如按q退出


PID USER      PR  NI %CPU    TIME+  %MEM  VIRT  RES  SHR S COMMAND ←第三部分
6973 root      17   0  1.2   0:01.57  1.2  8640 2312 1844 S sshd    ←进程列表栏
2496 mysql     16   0  0.5  25:58.88  1.9  124m 3740 1924 S mysqld
2522 root      16   0  0.2   2:28.28  0.9 15300 1828 1428 S httpd
7009 root      17   0  0.2   0:02.32  0.5  2120  984  784 R top
3 root       5 -10  0.1   3:26.97  0.0     0    0    0 S events/0
420 root      15   0  0.1   0:44.21  0.0     0    0    0 S kjournald
1 root      16   0  0.0   4:12.11  0.2  2296  364  336 S init
2 root      34  19  0.0   0:00.01  0.0     0    0    0 S ksoftirqd/0
4 root       5 -10  0.0   0:00.23  0.0     0    0    0 S khelper
5 root      14 -10  0.0   0:00.00  0.0     0    0    0 S kacpid
13 root       5 -10  0.0   0:25.80  0.0     0    0    0 S kblockd/0
14 root      25   0  0.0   0:00.00  0.0     0    0    0 S khubd
31 root      20   0  0.0   0:00.00  0.0     0    0    0 S pdflush
32 root      15   0  0.0   0:50.12  0.0     0    0    0 S pdflush
33 root      16   0  0.0   7:42.89  0.0     0    0    0 S kswapd0
34 root       6 -10  0.0   0:00.00  0.0     0    0    0 S aio/0
178 root      25   0  0.0   0:00.00  0.0     0    0    0 S kseriod
414 root       6 -10  0.0   0:00.00  0.0     0    0    0 S ata/0
415 root       7 -10  0.0   0:00.00  0.0     0    0    0 S ata_aux
1056 root       6 -10  0.0   0:00.00  0.0     0    0    0 S kauditd
1266 root       6 -10  0.0   0:03.42  0.1  1812  276  276 S udevd
1846 root      20   0  0.0   0:00.00  0.0     0    0    0 S kjournald
2361 root      16   0  0.0   0:12.16  0.2  3020  428  384 S syslogd
2365 root      15   0  0.0   0:00.05  0.1  1932  284  284 S klogd
2377 root      21   0  0.0   0:00.00  0.1  2656  268  268 S acpid
2389 root      16   0  0.0   0:54.68  0.3  4480  680  564 S sshd
2402 root      15   0  0.0   0:00.03  0.2  2988  392  392 S xinetd
2463 root      20   0  0.0   0:00.26  0.2  6180  396  396 S mysqld_safe
2531 root      16   0  0.0   1:01.96  0.2  4928  452  392 S crond
2548 root      16   0  0.0   0:02.87  0.2  2360  328  292 S atd
2577 root      18   0  0.0   0:00.20  0.6  4084 1252  976 S login
2622 root      18   0  0.0   0:00.00  0.1  2360  268  268 S mingetty
2623 root      18   0  0.0   0:00.01  0.1  2204  268  268 S mingetty
2624 root      18   0  0.0   0:00.00  0.1  3492  268  268 S mingetty
2625 root      18   0  0.0   0:00.00  0.1  1940  268  268 S mingetty
2626 root      18   0  0.0   0:00.00  0.1  2884  268  268 S mingetty
2915 apache    16   0  0.0   1:52.01  7.0 26784  13m 2336 S httpd
2939 apache    17   0  0.0   1:51.39  4.2 27052 8344 2296 S httpd
2940 apache    16   0  0.0   1:40.20  4.1 26872 8148 2316 S httpd
2941 apache    16   0  0.0   2:04.76  7.4 26808  14m 2492 S httpd
3051 apache    16   0  0.0   1:45.20  5.7 27060  11m 2320 S httpd

各列表部分详解

如上图所示,top 的全屏对话模式可分为3部分:系统信息栏、命令输入栏、进程列表栏。

  • 第一部分 -- 最上部的 系统信息栏 :

    • 第一行(top): “14:56:14”为系统当前时刻; “1 day, 7:15”为系统启动后到现在的运作时间; “2 users”为当前登录到系统的用户,更确切的说是登录到用户的终端数 -- 同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目; “load average”为当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过 CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程;
    • 第二行(Tasks): “54 total”为当前系统进程总数; “1 running”为当前运行中的进程数; “53 sleeping”为当前处于等待状态中的进程数; “0 stoped”为被停止的系统进程数; “0 zombie”为被复原的进程数;
    • 第三行(Cpus): 分别表示了 CPU 当前的使用率;
    • 第四行(Mem): 分别表示了内存总量、当前使用量、空闲内存量、以及缓冲使用中的内存量;
    • 第五行(Swap): 表示类别同第四行(Mem),但此处反映着交换分区(Swap)的使用情况。通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的。
  • 第二部分 -- 中间部分的内部命令提示栏:

    • s - 改变画面更新频率
    • l - 关闭或开启第一部分第一行 top 信息的表示
    • t - 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示
    • m - 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示
    • N - 以 PID 的大小的顺序排列表示进程列表(第三部分后述)
    • P - 以 CPU 占用率大小的顺序排列进程列表 (第三部分后述)
    • M - 以内存占用率大小的顺序排列进程列表 (第三部分后述)
    • h - 显示帮助
    • n - 设置在进程列表所显示进程的数量
    • q - 退出 top top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。
  • 第三部分 -- 最下部分的进程列表栏: 以 PID 区分的进程列表将根据所设定的画面更新时间定期的更新。通过 top 内部命令可以控制此处的显示方式

应用

一般的,我们通过远程监控的方式对服务器进行维护,让服务器本地的终端实时的运行 top ,是在服务器本地监视服务器状态的快捷便利之一。

另外:top命令 翻页方法:

按 Shift + < 等於上一页 按 Shift + > 等於下一页