htop - interactive process viewer

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:

1
$ brew install htop

For Ubuntu 14.04 LTS:

1
$ sudo apt-get install htop

查看命令手册:

1
$ man htop

启动htop:

1
$ htop

将得到如下类似的一个实时进程监控窗口:
htop panel

帮助:按F1进入使用帮助。

退出:按下q键退出htop面板。

监控面板介绍

系统CPU使用率

cpu-usage

图中上半部分中的数字18表示系统中CPU/Core的数量,而紧邻数字的右侧进度条则相应地表示了对应CPU/Core的实时负载。进度条中不同颜色具有不同的含义(以下为默认配置,具体操作时可以在F2->Setup->Colors列表中选择不同的主题)

  • CPU使用率栏: [低优先级进程/用户进程/内核进程                     used%]

系统内存使用率

  • Memory使用率栏:[已使用/buffers/cache                     used/total]

系统平均负载

load average

  • 负载(Load)): 运行队列(run-queue)的长度:L = 等待进程的数目 + 运行进程的数目
  • 平均负载(load average) 在一段时间内CPU正在处理以及等待CPU处理的进程数之和的统计信息,也就是CPU使用队列的长度的统计信息

    “最大负载=核心数”法则 在多核处理中,负载不应该高于处理器核心的总数量source

上图中Load average之后的3个数字显示的是系统在1分钟5分钟15分钟之内的平均负载值。(注: uptime命令可以直接查看load average)

进程详细实时信息列表

processes-info

每一列依次表示:

  • 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

坚持原创技术分享,您的支持将鼓励我继续创作!