top
top - 00:29:17 up 1 day, 26 min, 2 users, load average: 0.01, 0.01, 0.00
Tasks: 301 total, 1 running, 229 sleeping, 0 stopped, 1 zombie
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 985128 total, 63648 free, 792520 used, 128960 buff/cac
KiB Swap: 969960 total, 72952 free, 897008 used. 56732 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
71720 root 20 0 531384 11752 0 S 0.3 1.2 8:53.33 dockerd
- 首先读头部的每个参数进行解释,可以通过
man top
查看- 第一行:当前时间 + 系统启动的时间和 + 当前登录用户数+ cpu 1min,5min, 15min的负载
- 第二行:总共的任务数(线程数)+ 正在运行tasks个数 + 休眠的tasks数 + 停止的tasks数 + 僵尸tasks数
- 在
man top
中又描述Line 1 shows total tasks or threads, depending on the state of the Threads-mode toggle.
所以在线程模式下tasks表示的是线程数。
- 在
- 第三行:CPU当前负载 + us + sy + ni + id + wa + hi + si + st
- us, user : time running un-niced user processes | 非优先的用户进程负载
- sy, system : time running kernel processes | 内核进程负载
- ni, nice : time running niced user processes | 优先的用户进程负载
- id, idle : time spent in the kernel idle handler | 空闲的内核进程负载
- wa, IO-wait : time waiting for I/O completion | IO 等待的负载
- hi : time spent servicing hardware interrupts | 硬中断的负载
- si : time spent servicing software interrupts | 软中断的负载
- st : time stolen from this vm by the hypervisor | 从虚拟机管理程序中偷取的时间???
- 第四行:内存总量 + 剩余内存 + 已用内存 + 缓冲区
- 第五行:交换空间总量 + 剩余交换空间 + 已用交换空间 + 已分配的交换空间
- 交换空间是干什么的?在多道程序设计的操作系统中,为了解决内存不足的问题,利用了局部性定理,将程序运行时部分装入内存,其他一部分存在外存,需要调用存在外存那部分程序时,先将内存中已有的程序调出内存,再把用到的外存上的程序调入内存,这里的用于调入调出内存的物理空间,就是交换空间。
- 交换空间是干什么的?在多道程序设计的操作系统中,为了解决内存不足的问题,利用了局部性定理,将程序运行时部分装入内存,其他一部分存在外存,需要调用存在外存那部分程序时,先将内存中已有的程序调出内存,再把用到的外存上的程序调入内存,这里的用于调入调出内存的物理空间,就是交换空间。
- 第六行:pid + 运行进程的用户 + 优先级 + 优先级 + 虚拟内存 + 常驻内存 + 共享内存 + 进程状态 + CPU负载 + 内存占用 + 启动的时间 + 进程名
- PR: 动态优先级,取值范围0-139,越小优先级越低
- NICE:静态优先级,通过renic改变,进程的优先级,取值范围-20~19,越小优先级越高
- S(进程状态): D: 不可中断的睡眠状态; R 运行; S 睡眠; T 跟踪/停止; Z 僵尸进程
- 第一行:当前时间 + 系统启动的时间和 + 当前登录用户数+ cpu 1min,5min, 15min的负载
htop
1 [| 1.3%] Tasks: 156, 354 thr; 1 running
2 [ 0.0%] Load average: 0.06 0.01 0.00
Mem[||||||||||||||||||||||||||||757M/962M] Uptime: 1 day, 01:24:56
Swp[||||||||||||||||||||||||||||878M/947M]
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
79086 tangs 20 0 40936 4604 3412 R 0.7 0.5 0:00.10 htop
F1Help F2Setup F3SearchF4FilterF5Tree F6SortByF7Nice -F8Nice +F9Kill F10Quit
好像很多人都说htop比top好用,我也觉得。我觉得操作和视图很直观。
- 第一行: 就是cpu的负载,如果多个cpu就会有1.2.3… 要是要注意,这里的cpu是逻辑cpu个数,不是物理cpu个数
- 第三行:内存占用,很直观
- 第四行:交换空间占用,上面有提到
- 第一三行的右边:进程数,线程数,正在运行的任务数,1,5,15分钟cpu的负载,启动时间
- 第五行:pid + 运行进程的用户 + 优先级 + 优先级 + 虚拟内存 + 常驻内存 + 共享内存 + 进程状态 + CPU负载 + 内存占用 + 启动的时间 + 进程名
- 最后一行: 操作按键,这一行跳转 https://www.jianshu.com/p/6e9b0cc7f348。 这篇文章很详细了。
参考文章: