top命令是linux下常用的性能分析工具。能够实时的显示系统中各个进程的资源占用情况,由操作系统提供,默认5s刷新一次。top是一个动态显示的过程,可以通过交互式命令对显示情况进行设置。
使用权限:所有使用者
一、输入top后界面显示剖析
1.第一行 该行与使用uptime 命令的结果相同
13:58:25 | 系统当前时间 |
up 2days,19:12 | 系统运行时间。最后一次启动到目前的总时间。 |
2 users | 当前登录用户数量。当前只有2个用户登录 |
load average 0.02 0.03 0.05 | 系统负载。任务队列的平均长度,3个数值分别统计最近1,5,15分钟的系统平均负载。 系统平均负载:单核cpu情况下,0.00表示没有任何负载,1.00表示刚好满负荷,超过1则表示超负责,理想值为0.7。 多核cpu负载:CPU核数*理想值0.7=理想负荷,列入8核cpu不超过5.6表示没有出现高负载。 |
2.第二行,tasks为当前系统中所有任务的统计。
82 total | 进程总数. 总共运行82个进程 |
1 running | 正在运行的进程数。 |
81 sleeping | 睡眠的进程数。 |
0 stopped | 停止的进程数 |
0 zombie | 僵尸进程数 |
3.第三行 cpu相关信息。如果是多核的情况,可以通过数字1 来回切换显示各核的cpu信息。
0.3 us | user:用户空间占cpu资源的百分比 |
0.0 sy | system:内核态进程占cpu资源的百分比。对于操作系统而言,消耗在内核态的时间应该越少越好。在实际应用当中,常常大量的io操作会使sy变大。 |
0.0 ni | nice:用户态进程改变过优先级的进程占cpu资源的百分比。此处没有进程调整过nice的值,那个ni显示为0。 |
99.7 id | 空闲cpu百分比。一般情况下,us+ni+id 应该接近100%. |
0.0 wa | IO-wait:io等待占用cpu资源的百分比。磁盘io操作是很慢的,比如cpu启动一个磁盘读写操作,需要等待磁盘读写的结果,在这个过程当中cpu处于空闲状态。linux系统在计算平均负载的时候会把cpu等待io的操作的也计算进去,所以当观察到系统的平均负载过高的时候,可以结合wa来判断系统的性能瓶颈是否在io读取。 |
0.0hi | hardware interrupts:cpu服务硬中断占用cpu时间的百分比。硬终端为网卡,硬盘等硬件设备发送给cpu的终端消息,cpu收到之后消耗cpu时间进行处理。 |
0.0si | software interrupts:cpu服务软中断占用cpu时间的百分比。软中断时由程序发出的中断请求,cpu收到后进行一系列处理。 |
0.0st | steal Time: linux作为虚拟机的时候,虚拟机等待cpu资源的时间(time stolen from this vm by the hypervisor). |
备注:按键t可以控制2,3行的是否显示。
4.内存状态,该行与free命令类似.此处使用kb为单位。
1006964 total | 物理内存总量 |
145752 free | 空闲内存总量 |
97592 used | 使用中的内存总量 |
763580 bufer/cache | 用作内核缓存的内存量 |
5.swap交换分区信息
524284 total | 交换区总量 |
524284 free | 使用的交换区总量 |
0 used | 空闲交换区总量 |
692892 avail Mem | 缓冲的交换区总量 |
内存信息可以通过 cat /proc/meminfo
备注:可以通过E(大写),来控制内存信息的显示单位
一般情况下,显示上i面信息就足够了,如果需要更多的信息,可以按下f进入任务信息的配置界面:
6.第六行:各进程的状态监控
PID:进程id
USER:进程所有者
PR:进程优先级
NI:nice值。负值表示高优先级,正值表示低优先级
VIRT:进程使用的虚拟内存总量。VIRT=SWAP+RES
RES:进程使用的、未被换出的物理内存大小。RES=CODE+DATA
SHR:共享内存大小
S:进程状态。D=不可终端的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程
%CPU:上次跟新到现在的CPU时间占用百分比
%MEM:进程使用的物理内存百分比
TIME+:进程使用的CPU时间总计
COMMAND:命令名字
一般情况下上面的这些信息就足够了,如果需要获取更多的信息,可以按下小写字母f进入任务信息配置界面。
在这里可以选择要显示的列,并且可以配置按照哪一列进行排序。此处采用%CPU进行排序。
top常用快捷键介绍
1.只显示某个用户的进程
小写字母u,查看某个按照用户权限启动的进程。
2.显示进程执行的完整命令
小写字母c来回切换COMMAND列的显示模式
3.按照某一列对进程排序
按小写字母f进入排序设置界面,配置排序。也可以使用预定义的命令按照某一列进行排序。比如:大写字母 M 以 %MEM 列排序;大写字母 N 以 PID 列排序;大写字母 P 以 %CPU 列排序;大写字母 T 以 TIME+ 列排序。
4.多核监控
在top的视图界面,按下键盘数字"1",可以监控每个逻辑cpu的状况。当前只有一个逻辑cpu0。
5.通过敲击"y"键盘,关闭或者打开处于运行态进程的高亮效果。
6.top命令配置文件。
通过命令修改的配置只是修改内存,保存配置需要按大写字母W,退出当前top命令,再次进入你的修改仍然起作用。
获取top的帮助文档可以使用小写字母h或者使用man top命令。