首页 > Linux操作系统 > Linux操作系统 > Linux下top命令之详解
使用SSHClient客户端连接到远程Linux系统。使用top命令查看系统的当前运行的情况。如图对top命令执行的结果做了简单的图解,下面针对每一项做详细的解释。
top命令的第一行“top - 19:56:47 up 39 min, 3 users, load average: 0.00, 0.00, 0.00”显示的内容依次为“系统当前时间 、系统到目前为止已运行的时间、当前登录系统的用户数量、系统负载(任务队列的平均长度)三个值分别为1分钟、5分钟、15分钟前到现在的平均值【这三个一般会小于1,如果持续高于5,请仔细查看那个程序影响系统的运行】”
top命令的第二行“Tasks: 120 total, 2 running, 118 sleeping, 0 stopped, 0 zombie”显示的内容依次“所有启动的进程数”、“正在运行的进程数”、“挂起的进程数”、“停止的进程数”、“僵尸进程数”。
top命令的第三行“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”显示的内容依次为“用户空间占用CPU百分比”、“内核空间占用CPU百分比”、“用户空间内改变过优先级的进程占用CPU百分比”、“空闲CPU百分比”、“等待输入输出CPU时间百分比”、“CPU服务于硬件中断所耗费的时间总额”、“CPU服务软中断所耗费的时间总额”、“Steal Time”
top命令第四行“Mem: 508820k total, 480172k used, 28648k free, 41944k buffers”显示内容依次为“物理内存总量”、“已使用的物理内存”、“空闲物理内存”、“内核缓存内存量”。
top命令第5行“Swap: 392184k total, 0k used, 392184k free, 259152k cached”显示内容依次为“交换区总量”、“已使用交互区总量”、“空闲交换区总量”、“缓冲的交换区总量”。
top命令第5行“PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND ”显示内容依次为“进程ID”、“进程所有者”、“优先级”、“nice值,负值表示高优先级,正值表示低优先级”、“进程使用的虚拟内存总量”、“进程使用的、未被换出的物理内存大小”、“共享内存大小”、“进程状态”、“上次更新到现在的CPU时间占用百分比”、“进程使用的物理内存百分比”、“进程使用CPU总时间”、“命令名、命令行”。

|
|
含义 |
|---|---|
| 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 | 任务标志 |
2.在使用top -ab -n 1将所有进程信息输出之后,可以使用AWK等类似工具统计信息,例如:统计出COMMAND为httpd的所有进程占用的内存。
3.也可以使用命令top -an -n 1 | grep httpd,查看所有httpd的进程信息1)命令及参数基本用法:
点击(此处)折叠或打开
2)常用参数说明
点击(此处)折叠或打开
1)top命令执行结果如图所示
2)top命令执行结果重要列的含义详解
默认显示的列包括 PID,USERPR,NI,VIRT,RES,SHR,S,%CPU,%MEM,TIME+,COMMAND.
top命令结果各列的含义如下:
点击(此处)折叠或打开
3)top命令执行结果按照某一列排序
在命令行提示符执行top命令,输入大写P,则结果按CPU占用降序排序。输入大写M,结果按内存占用降序排序。(注:大写P可以在capslock状态输入p,或者按Shift+p)。
默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通过下面的快捷键来更改显示内容。
更改显示内容
通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定。
按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。
按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的 R 键可以将当前的排序倒转。
实例1:每两秒钟更新一次 top ,观察整体信息,-d参数举例
点击(此处)折叠或打开
实例2:将 top 的信息进行 2 次,然后将结果输出到 /tmp/top.txt,-B -N参数
点击(此处)折叠或打开
实例3:假设 9999 是一个已经存在的 PID ,用top命令仅观察指定pid的程序的-p参数用法
点击(此处)折叠或打开
示例4:在linux中查看指定进程的线程数的-H参数用法
点击(此处)折叠或打开
手册中说:-H : Threads toggle
加上这个选项启动top,top一行显示一个线程。否则,它一行显示一个进程。
在linux中查看mysql线程的top命令,mysql的pid为2308
点击(此处)折叠或打开
示例5: top命令执行结果之后按数字键1显示各个CPU的核心命令
top命令是Linux上进行系统监控的首选命令,当不能满足用户需求时,通常可用ps和netstate两个命令来补充top的不足。
Linux下top命令中%CPU结果为什么比%us的结果高?
us是user,sy是system,注意看%wa,waiting,这个是等IO的时间,一般来说是在等磁盘操作。
100%-%id(idle)就是总共实际使用的CPU时间了。
在Linux下怎样让top命令启动之后就按内存使用排序?
在键盘上输入大写字母M 以达到以内存占用率大小顺序排列。另外输入大写字母P可以按CPU使用率排序。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29209863/viewspace-2126882/ ,如需转载,请注明出处,否则将追究法律责任。