top命令是Linux和Unix系统中一个非常强大的实时系统监控工具,它可以显示系统中各个进程的实时动态管理视图,类似于Windows的任务管理器。在需要诊断系统性能问题或监控资源使用情况时是非常有用的。
使用top命令
在命令行中输入top并回车,即可启动top命令。
界面说明
1)顶部区域:显示系统概览,包括当前的系统时间、系统已经运行的时间长度、当前登录到系统的用户数量、负载均衡情况(显示过去1分钟、5分钟和15分钟的平均负载)等。
2)任务(Tasks)/进程统计信息:显示当前系统中运行的进程总数、当前运行、睡眠、停止、僵尸状态的进程数。
3)当前CPU的使用情况:
- us(用户空间):用户空间占用的CPU时间百分比。
- sy(内核空间):内核空间占用的CPU时间百分比。
- ni(改变过优先级的进程):改变过优先级的进程占用的CPU时间百分比。
- id(空闲):空闲的CPU时间百分比。
- wa(等待I/O):等待I/O的CPU时间百分比,高值可能表示磁盘I/O是性能瓶颈。
- hi(硬件中断):处理硬件中断的时间百分比。
- si(软件中断):处理软件中断的时间百分比。
- st(虚拟机偷走的时间):当Linux系统是在虚拟机中运行时,等待CPU资源的时间占比。
4)当前内存使用情况:显示物理内存的总量、使用量、空闲量以及缓冲或缓存的量。
5)当前交换空间的使用情况:交换空间总量、使用量、空闲量。类似于Windows的虚拟内存,当内存不足时,会使用一部分硬盘空间作为交换空间。
6)进程列表
top命令界面的下半部分列出了当前系统中运行的进程:
- PID(进程ID):进程的唯一标识符。
- USER(进程所有者):运行该进程的用户。
- PR(优先级):进程的优先级。
- NI(nice值):进程的nice值,用于调整进程的优先级。
- VIRT(虚拟内存总量):进程使用的虚拟内存总量。
- RES(物理内存使用量):进程使用的、未被换出的物理内存大小。
- SHR(共享内存大小):进程使用的共享内存大小。
- S(进程状态):进程的状态,如R(运行)、S(睡眠)、D(不可中断睡眠)等。
- %CPU(CPU使用率):进程占用的CPU时间百分比。
- %MEM(内存使用率):进程占用的物理内存百分比。
- TIME+(CPU时间总计):进程使用的CPU时间总计。
- COMMAND(进程名称/命令行):进程的名称或命令行。
命令选项
- -b:批处理模式,输出到标准输出而不是终端。
- -c:显示完整的命令行(可能很长)。
- -d 秒数:设置更新间隔,默认是3秒。
- -i:忽略闲置和僵尸进程。
- -n 次数:设置top命令更新屏幕的次数后退出。
- -o 字段:指定排序字段。
- -p 进程ID:仅显示指定的进程ID。
- -u 用户名:仅显示指定用户的进程。
top命令的使用:计算CPU的空闲率和使用率
top -bn 1 -i -c | awk '/id/{print $8}'