1. htop简介
Htop是一款运行于Linux系统监控与进程管理软件,用于取代Unix下传统的top。与top只提供最消耗资源的进程列表不同,htop提供所有进程的列表,并且使用彩色标识出处理器、swap和内存状态。
用户一般可以在top无法提供详尽系统信息的情况下选择安装并使用htop。比如,在查找应用程序的内存泄漏问题时。与top相比,htop提供更方便、光标控制的界面来杀死进程。
htop用C语言编写,采用了ncurses库。htop的名称源于其作者的名字。
2、htop的安装:apt-get install htop
3、htop的使用:
htop常用功能键
F1 : 查看htop使用说明
F2 : 设置
F3 : 搜索进程
F4 : 过滤器,按关键字搜索
F5 : 显示树形结构
F6 : 选择排序方式
F7 : 减少nice值,这样就可以提高对应进程的优先级
F8 : 增加nice值,这样可以降低对应进程的优先级
F9 : 杀掉选中的进程
F10 : 退出htop
/ : 搜索字符
h : 显示帮助
l :显示进程打开的文件: 如果安装了lsof,按此键可以显示进程所打开的文件
u :显示所有用户,并可以选择某一特定用户的进程
s : 将调用strace追踪进程的系统调用
t : 显示树形结构
H :显示/隐藏用户线程
I :倒转排序顺序
K :显示/隐藏内核线程
M :按内存占用排序
P :按CPU排序
T :按运行时间排序
上下键或PgUP, PgDn : 移动选中进程
左右键或Home, End : 移动列表
Space(空格) : 标记/取消标记一个进程。命令可以作用于多个进程,例如 "kill",将应用于所有已标记的进程
上面左上角显示CPU、内存、Swap使用情况,右边显示任务、负载、开机时间,下面就是进程实时状况。
下面是 F1~F10 的功能和对应的字母快捷键。
Shortcut Key | Function Key | Description | 中文说明 |
h, ? | F1 | Invoke htop Help | 查看htop使用说明 |
S | F2 | Htop Setup Menu | htop 设定 |
/ | F3 | Search for a Process | 搜索进程 |
\ | F4 | Incremental process filtering | 增量进程过滤器 |
t | F5 | Tree View | 显示树形结构 |
<, > | F6 | Sort by a column | 选择排序方式 |
[ | F7 | Nice – (change priority) | 可减少nice值,这样就可以提高对应进程的优先级 |
] | F8 | Nice + (change priority) | 可增加nice值,这样就可以降低对应进程的优先级 |
k | F9 | Kill a Process | 可对进程传递信号 |
q | F10 | Quit htop | 结束htop |
命令行选项(COMMAND-LINE OPTIONS)
-C –no-color | 使用一个单色的配色方案 |
-d –delay=DELAY | 设置延迟更新时间,单位秒 |
-h –help | 显示htop 命令帮助信息 |
-u –user=USERNAME | 只显示一个给定的用户的过程 |
-p –pid=PID,PID… | 只显示给定的PIDs |
-s –sort-key COLUMN | 依此列来排序 |
-v –version | 显示版本信息 |
交互式命令(INTERACTIVE COMMANDS)
上下键或PgUP, PgDn | 选定想要的进程,左右键或Home, End 移动字段,当然也可以直接用鼠标选定进程 |
Space | 标记/取消标记一个进程。命令可以作用于多个进程,例如 “kill”,将应用于所有已标记的进程 |
U | 取消标记所有进程 |
s | 选择某一进程,按s:用strace追踪进程的系统调用 |
l | 显示进程打开的文件: 如果安装了lsof,按此键可以显示进程所打开的文件 |
I | 倒转排序顺序,如果排序是正序的,则反转成倒序的,反之亦然 |
+, – | 在树形模式下,展开或折叠子树 |
a (在有多处理器的机器上) | 设置 CPU affinity: 标记一个进程允许使用哪些CPU |
u | 显示特定用户进程 |
M | 按Memory使用排序 |
P | 按CPU使用排序 |
T | 按Time+使用排序 |
F | 跟踪进程: 如果排序顺序引起选定的进程在列表上到处移动,让选定条跟随该进程。这对监视一个进程非常有用:通过这种方式,你可以让一个进程在屏幕上一直可见。使用方向键会停止该功能 |
K | 显示/隐藏内核线程 |
H | 显示/隐藏用户线程 |
Ctrl-L | 刷新 |
Numbers | PID 查找: 输入PID,光标将移动到相应的进程上 |
1 防止进程重复显示
在使用htop查看进程信息的时候,经常会出现很多个进程重复的情况,如下情况:
经研究发现,htop会把一个进程里的线程当做一个进程来显示出来,上图中的java进程有多个线程,所以htop显示了多个进程。
这个特性对于分析进程性能很不有利, 所以我们要关掉它。
好在htop也是提供了一个方法来设置这个选项。
按F2
选择 Display options
选择 Hide userland threads
如下图所示
这样以后,在htop的进程列表里再也看不见一堆重复的进程了
2 数据说明
第一行与第二行,显示CPU当前的运行负载,我这里是双CPU就显示两行!
第三行,显示内存的使用情况!
第四行,显示交换分区使用情况!
第一行,显示了当前的进程总数,其中有一个进程在运行!
第二行,显示了当前的负载情况,分别代表了,1分钟,5分钟,15分钟负载!
第三行,显示了系统的运行的时间!
PID:进行的标识号
USER:运行此进程的用户
PRI:进程的优先级
NI:进程的优先级别值,默认的为0,可以进行调整
VIRT:进程占用的虚拟内存值
RES:进程占用的物理内存值
SHR:进程占用的共享内存值
S:进程的运行状况,R表示正在运行、S表示休眠,等待唤醒、Z表示僵死状态
%CPU:该进程占用的CPU使用率
%MEM:该进程占用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间
COMMAND:进程启动的启动命令名称
3 参数说明
htop –d 数据刷新时间
htop –u aurain 显示用户aurain的所属进程
M 按Memory 使用排序
P 按CPU 使用排序
T 按Time+ 使用排序
F3 按进程名搜索
直接输入数字 光标将定位于该PID的进程
q 退出
4 参考说明
http://www.cnblogs.com/mchina/archive/2013/03/15/2858041.html
VIRT:虚拟内存virtual memory usage。一个应用占有的地址空间,只是要应用程序要求的,就全算在这里,而不管它真的用了没有。
RES:常驻内存resident memory usage。这个值就是该应用程序真正使用的内存,但还有两个小问题,一是有些东西可能放在交换盘上了(SWAP),二是有些内存可能是共享的。
SHR:shared memory。共享内存。就是说这一块内存空间有可能也被其他应用程序使用着;而Virt - Shr似乎就是这个程序所要求的并且没有共享的内存空间。