top
Linux系统中,Top命令主要用于实时运行系统的监控,包括Linux内核管理的进程或者线程的资源占用情况。
这个命令对所有正在运行的进程和系统负荷提供不断更新的概览信息,包括系统负载、CPU利用分布情况、内存使用、每个进程的内容使用情况等信息。
top的使用方式:
top [-d number] | top [-bnp]
参数解释:
- -d:number代表秒数,表示top命令显示的页面更新一次的间隔。默认是5秒。
- -b:以批次的方式执行top。
- -n:与-b配合使用,表示需要进行几次top命令的输出结果。
- -p:指定特定的pid进程号进行观察。
在top命令显示的页面还可以输入以下按键执行相应的功能(注意大小写区分的):
-
?:显示在top当中可以输入的命令
-
P:以CPU的使用资源排序显示
-
M:以内存的使用资源排序显示
-
N:以pid排序显示
-
T:由进程使用的时间累计排序显示
-
k:给某一个pid一个信号。可以用来杀死进程
-
r:给某个pid重新定制一个nice值(即优先级)
-
q:退出top(用ctrl+c也可以退出top)
第一行
top - 15:53:32 up 1:02, 1 user, load average: 0.53, 1.08, 1.63
- 程序或者窗口的名称:top
- 当前时间和系统的启动时间:15:53:32 up 1:02,
- 总共的用户数量:1 user
- 过去1、5和15分钟的系统平均负载:load average: 0.53, 1.08, 1.63
第二行
任务: 502 total, 3 running, 489 sleeping, 0 stopped, 10 zombie
第二行对Task进行分类,包括running、sleeping、stopped、zombie四类,显示了系统中正在运行的任务的状态统计信息。具体来说,这里有502个任务总数,其中有3个任务正在运行,489个任务正在睡眠,0个任务已停止,10个任务为僵尸进程。
第三行
%Cpu(s): 5.7 us, 3.1 sy, 0.0 ni, 91.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
第三行显示CPU的状态百分比:
- %Cpu(s): CPU使用率的统计信息。
- us (user): 用户空间进程占用CPU的时间百分比。
- sy (system): 内核空间进程占用CPU的时间百分比。
- ni (nice): 用户进程以优先级调整过的占用CPU的时间百分比(通常不会有这个值)。
- id (idle): CPU空闲的时间百分比。
- wa (IO-wait): CPU等待I/O操作的时间百分比。
- hi (hardware interrupt): CPU处理硬件中断的时间百分比。
- si (software interrupt): CPU处理软件中断的时间百分比。
- st: 被虚拟化环境偷取的时间百分比(通常不会有这个值)。
第四行
MiB Mem : 15703.7 total, 3993.7 free, 5015.4 used, 6694.5 buff/cache
第四行表示物理内存,分为total、 free、 used 、 buff/cache。 buff/cache表示用作内核缓存的内存量。
第五行
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 9228.2 avail Mem
第五行表示虚拟内存,分为total、free、used、avail
任务信息
可以按f编辑基本视图中的显示字段:
- %CPU: CPU Usage,自上次屏幕更新以来任务占用的CPU时间份额,表示为总CPU时间的百分比。
- %MEM: Memory Usage,进程使用的物理内存百分比
- CODE:Code Size,可执行代码占用的物理内存量
- COMMAND:Command Name or Command Line,用于显示输入的命令行或者程序名称
- PID:Process Id,任务独立的ID,即进程ID
- PPID:Parent Process Id,父进程ID
- UID:User Id,任务所有者的用户ID
- USER:User Name,用户名
- RUSER:Real User Name,实际的用户名
- TTY:Controlling Tty,控制终端名称
- TIME:CPU TIME,该任务CPU总共运行的时间
- TIME+:同TIME,其粒度更细
- OOMa:Out of Memory Adjustment Factor,内存溢出调整机制,这个字段会被增加到当前内存溢出分数中,来决定什么任务会被杀掉,范围是-1000到+1000。
- OOMs:Out of Memory Score,内存溢出分数,这个字段是用来选择当内存耗尽时杀掉的任务,范围是0到+1000。0的意思是绝不杀掉,1000的意思是总是杀掉。
- S:Process Status,表示进程状态信息
- D: 不可中断休眠
- I:空闲
- R:运行中
- S:休眠
- T:被任务控制信号停止
- t:在跟踪期间被调试器停止
- Z:僵尸
交互命令
在top命令显示的页面还可以输入以下按键执行相应的功能(注意大小写区分的):
-
?:显示在top当中可以输入的命令
-
P:以CPU的使用资源排序显示
-
M:以内存的使用资源排序显示
-
N:以pid排序显示
-
T:由进程使用的时间累计排序显示
-
k:给某一个pid一个信号。可以用来杀死进程
-
r:给某个pid重新定制一个nice值(即优先级)
-
q:退出top(用ctrl+c也可以退出top)
iostat
参数说明:
- -c: 仅显示CPU利用率相关信息;
- -d: 仅显示磁盘I/O相关信息;
- -k: 显示输出的数据单位为KB/s而不是默认的字节/s;
- -t: 在输出中显示时间戳(时间戳格式YYYY-MM-DD HH:MM:SS);
- -m:显示状态以兆字节每秒为单位;
- -p:仅显示块设备和所有被使用的其他分区的状态;
- -V:显示版号并退出;
- -x:显示扩展状态;
- -N:显示 lvm2 统计信息;
- -j:显示持久设备名称统计信息;
cpu信息
avg-cpu: %user %nice %system %iowait %steal %idle6.25 0.01 4.16 0.03 0.00 89.55
- %user : 表示用户空间程序执行的CPU时间百分比;
- %nice : 表示以较高的优先级运行的用户进程的CPU时间百分比;
- %system : 表示内核空间程序执行的CPU时间百分比;
- %iowait : 表示CPU等待I/O操作完成的时间百分比;
- %steal : 表示由于运行虚拟机等原因被其他虚拟机占用的CPU时间百分比;
- %idle : 表示CPU空闲时间的百分比;
磁盘信息 iostat -x扩展
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
loop0 0.00 0.00 0.00 0.00 0.00 1.21 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
loop1 0.01 0.06 0.00 0.00 2.38 7.78 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
loop10 0.33 0.99 0.00 0.00 0.07 3.02 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
loop11 0.04 0.64 0.00 0.00 0.58 15.32 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.01
loop12 0.01 0.06 0.00 0.00 0.37 8.09 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
loop13 0.11 3.97 0.00 0.00 0.19 36.22 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.03
loop14 0.01 0.06 0.00 0.00 0.12 9.81 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
loop15 0.00 0.00 0.00 0.00 0.00 1.27 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
- r/s:每秒钟完成的读取次数(reads per second)。
- rkB/s:每秒钟读取的数据量,以千字节为单位(read kilobytes per second)。
- rrqm/s:每秒钟合并的读取请求次数(read requests merged per second)。
- %rrqm:合并读取请求的百分比(percentage of merged read requests)。
- r_await:读取请求的平均等待时间(average time for read requests to be served)。
- rareq-sz:每个读取请求的平均大小(average size of read requests)。
- w/s:每秒钟完成的写入次数(writes per second)。
- wkB/s:每秒钟写入的数据量,以千字节为单位(write kilobytes per second)。
- wrqm/s:每秒钟合并的写入请求次数(write requests merged per second)。
- %wrqm:合并写入请求的百分比(percentage of merged write requests)。
- w_await:写入请求的平均等待时间(average time for write requests to be served)。
- wareq-sz:每个写入请求的平均大小(average size of write requests)。
- d/s:每秒钟完成的删除请求次数(deletes per second)。
- dkB/s:每秒钟删除的数据量,以千字节为单位(delete kilobytes per second)。
- drqm/s:每秒钟合并的删除请求次数(delete requests merged per second)。
- %drqm:合并删除请求的百分比(percentage of merged delete requests)。
- d_await:删除请求的平均等待时间(average time for delete requests to be served)。
- dareq-sz:每个删除请求的平均大小(average size of delete requests)。
- f/s:每秒钟完成的同步刷新请求次数(flushes per second)。
- f_await:同步刷新请求的平均等待时间(average time for flush requests to be served)。
- aqu-sz:I/O队列长度的平均大小(average queue length)。
- %util:磁盘利用率,即磁盘活动所占总时间的百分比,越接近100%表示磁盘繁忙。
free
- -b 以Byte为单位显示内存使用情况
- -k 以KB为单位显示内存使用情况
- -m 以MB为单位显示内存使用情况
- -g 以GB为单位显示内存使用情况
- -h 以友好的方式显示内存的使用情况
- -o 不显示缓冲区调节列
- -s<间隔秒数> 持续观察内存使用状况
- -t 显示内存总和列
- -V 显示版本信息