htop命令简介
htop
是Linux系统下的一个交互式、实时进程监控应用程序,top
的高级版。
优点:
- 可以横向或纵向滚动浏览进程列表,以便查看所有的进程和完整的命令行
- 支持鼠标操作
- 杀进程时不需要输入进程号(快捷键:
F9
)
htop vs top
It is similar to top, but allows you to scroll vertically and horizon-
tally, so you can see all the processes running on the system, along
with their full command lines, as well as viewing them as a process
tree, selecting multiple processes and acting on them all at once.
Tasks related to processes (killing, renicing) can be done without
entering their PIDs. (摘自htop
手册:)
安装
For Mac OS:
|
|
For Ubuntu 14.04 LTS:
|
|
查看命令手册:
|
|
启动htop:
|
|
将得到如下类似的一个实时进程监控窗口:
帮助:按F1
进入使用帮助。
退出:按下q
键退出htop面板。
监控面板介绍
系统CPU使用率
图中上半部分中的数字1
到8
表示系统中CPU/Core的数量,而紧邻数字的右侧进度条则相应地表示了对应CPU/Core的实时负载。进度条中不同颜色具有不同的含义(以下为默认配置,具体操作时可以在F2->Setup->Colors
列表中选择不同的主题):
- CPU使用率栏: [低优先级进程/用户进程/内核进程 used%]
系统内存使用率
- Memory使用率栏:[已使用/buffers/cache used/total]
系统平均负载
- 负载(Load)): 运行队列(run-queue)的长度:L = 等待进程的数目 + 运行进程的数目
- 平均负载(load average) 在一段时间内CPU正在处理以及等待CPU处理的进程数之和的统计信息,也就是CPU使用队列的长度的统计信息
“最大负载=核心数”法则
在多核处理中,负载不应该高于处理器核心的总数量。source
上图中Load average
之后的3个数字显示的是系统在1分钟
,5分钟
,15分钟
之内的平均负载值。(注: uptime
命令可以直接查看load average)
进程详细实时信息列表
每一列依次表示:
- PID 进程ID
- USER 进程的所有者
- PRI 进程优先级。数字越小,优先级越高。
- NI 进程的
nice
值(负值表示高优先级,正值表示低优先级) - VIRT 进程使用的虚拟内存
- RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
- S 进程状态
- R (Running) 可执行状态(运行/就绪)
- D (uninterruptedly sleeping) 不可中断的睡眠状态.通常是在等待IO,比如磁盘IO,网络IO,其他外设IO (该状态不接收外来的任何信号,因此无法用kill杀掉D状态的进程)
- S (sleeping) 可中断的睡眠状态(因为等待某某事件的发生(比如等待socket连接、等待信号量),而被挂起)
- T (traced) 暂停状态或跟踪状态 (例如在
gdb
中对被跟踪的进程下一个断点,进程在断点处停下来的时候就处于task_traced状态) - Z (zombied) 退出状态,进程成为僵尸进程(已经结束了的进程,但是没有从进程表中删除)
- CPU% 进程的CPU时间片利用率
- MEM% 进程的物理内存利用率
- TIME+ 进程使用的处理器时间总计
- Command 启动该进程的完整命令行
最后一行是F1~F10的功能菜单和对应的字母快捷键。
Read More
Understanding the Load Average on Linux and Other Unix-like Systems
Understanding Linux CPU Load - when should you be worried?
Understanding and using htop to monitor system resources
Linux Performance Tools