htop 命令介绍
htop 命令是 top 命令的升级版,能够以更加丰富的形式展示服务器运行的进程和线程的情况,查看服务器的整体运行状态等。本篇对 htop 命令进行介绍。
安装 htop
1 | # centos |
注意,在 centos 中,命令 yum update 和 yum upgrade 有一些小区别:
- yum upgrade 会强制删除过时的软件包,这可能是危险的,因为有可能你在使用该软件;
- yum update 不会删除而会保留它们,这使得 yum update 更安全
htop 命令使用
1 | ## 以无颜色显示 |
对 htop 的显示进行解释,如下图是 htop 命令显示的一个例子:
CPU
- 编号 1-72 指的服务器 cpu 逻辑核心数;
- 每一个数字后面的的栅格表示该 cpu 运行的情况,满格表示 100% 占用,不同颜色表示不同的进程:
- 蓝色:低优先级进程占用百分比;
- 绿色:普通用户运行的进程占用百分比;
- 红色:系统进程占用百分比;
- 橙色:IRQ 时间占用百分比;
- 洋红色:Soft IRQ 时间占用百分比;
- 灰色:IO 等待时间占用百分比;
- 青色:Steal 时间占用百分比;
内存
内存(Memory,简写 Mem)一栏:
- 绿色:内存页面占用 RAM 百分比;
- 蓝色:缓冲区(Buffer)页面占用 RAM 百分比;
- 橙色:缓存区(Cache)页面占用 RAM 百分比;
- 21.2G/92.9G:服务器 RAM 占用/总 RAM 大小;
交换分区(Swap,简写 Swp)解释同内存。
缓冲和缓存
缓冲(Buffer)表示数据的暂存,然后批量传输或写入,多使用顺序的方式,用来缓解不同设备之间频繁地、缓慢地随机写。缓冲区是解决速度差异的唯一工具。简单说, 缓冲 buffer 是即将要被写入磁盘的。
缓存(Cache)表示对已读数据的复用,通过将它们缓存在相对高速的区域,缓存主要针对的是读操作。简单来说,缓存 cache 是从磁盘中读取出来的。
缓冲是为了提高内存和硬盘或其他I/O设备之间数据交换的速度而设计的。缓存是为了提高 CPU 和内存之间的数据交换速度而设计的,常见的有一级缓存、二级缓存和三级缓存(也叫作内存缓存)。
对于缓冲,是根据磁盘的读写设计的,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道。从而提高系统性能。Linux 有一个守护进程定期清空缓冲内容写入磁盘,或者手动清空缓冲使用命令 sync
。 拷贝数据到移动设备或者卸载移动设备时,一般要等几分钟,这是因为缓冲的原因。
对于缓存,CPU 在执行程序所用的指令和数据都要经过内存。由于内存读写速度赶不上 CPU 执行速度,为了提高两者数据交换的速度,在 CPU 和内存之间增加了缓存,它的速度比内存换,但价格高容量小,Intel等公式为了进一步缓解 CPU 和内存速度不均衡,又增加了二级缓存和三级缓存。一级缓存采用静态缓存 SRAM,二级缓存采用动态缓存 DRAM,一级缓存比二级缓存快。可简单的把二级缓存看着一级缓存的缓冲器。一般 CPU 找数据或程序是先到一级缓存找,当找不到就到二级缓存找,如果还找不到就到内存找。
线程数、负载和运行时间
- Tasks:表示总进程数或任务数 220,分解为 725 个线程,有 3 个正在运行;
- Load average: 表示过去 1 分钟、5 分钟和 15 分钟的系统平均负载情况;
- Uptime:表示系统从最近一次启动的运行时长。
线程详解
- PID:进程的 ID;
- USER:进程所有者或启动者;
- PRI:Linux 内核查看的进程优先级;
- NI:由用户或 root 重置的进程优先级;
- VIR:进程正在使用的虚拟内存;
- RES:进程正在使用的物理内存;
- SHR:进程正在使用的共享内存;
- S:进程的当前状态,D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程;
- CPU%:进程占用 CPU 百分比;
- MEM%:进程占用内存百分比;
- TIME+:进程占用的 CPU 时长。除以占用的 CPU 核数才是实际运行时长;
- Command:进程对应的命令;
常用快捷键
- u 指定某个用户的进程;
- p Command 命令显示完整路径名;
- P 基于 CPU 占用排序;
- M 基于内存占用排序;
- T 基于运行时间排序;
- h 查看帮助
- 或者使用鼠标点击某个条目进行排序;也可以用鼠标点击选中某个命令,上下键可移动某个命令
更多请参考
1 | man htop |