top是Linux下一个常用命令,用来监视系统的运行状况,类似于Windows的任务管理器,下图是top命令的运行界面:
top与htop字段解释-linux资源监控top的运行结果可以大致分为7个部分:

  • 第1行显示了系统概况
  • 第2行显示了进程概况
  • 第3行显示了CPU概况
  • 第4行显示了内存概况
  • 第5行显示了Swap分区概况
  • 第6行为空行,用以显示运行命令时输入的参数
  • 剩下部分则为每个进程的详细信息

    第1行

字符 含义
top - 系统概况
18:37:24 当前系统时间
up 130 days, 6:22, 系统已运行时间
1 user, 当前登录用户数
load average: 0.02, 0.04, 0.00 系统平均负载,三个数值分别为1分钟、5分钟、15分钟前到现在的平均值。

第2行

字符 含义
Tasks: 进程(任务)概况
23 total, 总进程数
1 running, 运行的进程数
22 sleeping, 睡眠的进程数
0 stopped, 停止的进程数
0 zombie 僵尸进程数

第3行

字符 含义
Cpu(s): CPU概况
3.7%us, 用户(user)进程占用CPU百分率
0.7%sy, 系统(system)进程占用CPU百分率
0.0%ni, 用户进程空间内改变过优先级(niced)的进程占用CPU百分比
95.7%id, CPU空闲(idle)率
0.0%wa, 等待(wait)IO的CPU时间百分比
0.0%hi, 硬中断(hardware interrupt)占用CPU的百分比
0.0%si, 软中断(software interrupt)占用CPU的百分比
0.0%st  

第4行

字符 含义
Mem: 内存(memory)概况,数值以kb为单位
524288k total, 内存总量
278140k used, 内存使用量
246148k free, 内存空闲量
0k buffers 缓冲的内存量

第5行

字符 含义
Swap: Swap分区概况,数值以kb为单位
65536k total, Swap分区总量
65536k used, Swap分区使用量
0k free, Swap分区空闲量
28800k cached 缓冲的Swap分区量

剩下部分

字符 含义
PID 进程号
USER 进程创建者
PR 进程优先级
NI nice值。越小优先级越高,最小-20,最大20(用户设置最大19)
VIRT 进程使用的虚拟(virtual)内存总量,单位kb。VIRT=SWAP+RES
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR 共享(share)内存大小,单位kb
S 进程状态。D=不可中断的睡眠状态,R=运行态,S=睡眠态,T=跟踪/停止态,Z=僵尸态
%CPU 进程占用CPU百分比
%MEM 进程占用内存百分比
TIME+ 进程运行时间
COMMAND 运行进程时所使用的命令

命令

top命令运行界面也可以输入相关命令,具体如下:

  • q:退出top运行界面
  • P:以占据CPU百分比排序
  • M:以占据内存百分比排序
  • T:以累积占用CPU时间排序
  • s:修改刷新时间间隔,默认每隔3秒刷新信息。按下s键,然后按下数字,即可修改刷新时间间隔为你输入的数字,单位为秒。例如:按下s键,在按数字1键,即可实现每秒刷新一次
  • 回车或空格:手动立即刷新
  • k:终止指定的进程。按下k键,再输入要杀死的进程的pid,再按回车键,选择信号类型,以数字标示,默认15为杀死,本步可省略直接按回车键(常用为-9)
  • h:显示可输入的命令帮助菜单
  • 1切换显示平均负载和启动时间信息(显示cpu每个内核)
  • m 切换显示内存信息(显示使用百分比和总内存大小)
  • t 切换显示进程和CPU状态信息(显示us/sy)
  • c 切换显示命令名称和完整命令行

常用操作命令:

top   //每隔5秒显式所有进程的资源占用情况
top -d 2  //每隔2秒显式所有进程的资源占用情况
top -c  //每隔5秒显式进程的资源占用情况,并显示进程的命令行参数(默认只有进程名)
top -p 12345 -p 6789//每隔5秒显示pid是12345和pid是6789的两个进程的资源占用情况
top -d 2 -c -p 123456 //每隔2秒显示pid是12345的进程的资源使用情况,并显式该进程启动的命令行参数

 

 

htop安装:

方式一:通过yum安装(yum -y install htop)

方式二:通过rpm包安装

wget http://pkgs.repoforge.org/htop/htop-1.0.2-1.el6.rf.x86_64.rpm

rpm -i htop-1.0.2-1.el6.rf.x86_64.rpm

htop介绍:

htop是一款第三方的命令行工具,它可以被视为是top的增强版,在Ubuntu下可使用apt install htop命令安装,下图是htop命令的运行界面:
top与htop字段解释-linux资源监控

 

当了解了top运行界面的各种参数的含义后,htop运行界面就变得不言而喻了,下面简要介绍一下可以在htop运行界面执行的相关命令:

 

第一行与第二行,显示CPU当前的运行负载,我这里是双CPU就显示两行!

第三行,显示内存的使用情况!

第四行,显示交换分区使用情况!

top与htop字段解释-linux资源监控

 

Linux系统的负荷“load averages”的含义

load average 三个参数的含义在w的手册里面找到,分别是1分钟、5分钟、15分钟内的平均负载。

负载和你的CPU core的数量有关,可以通过以下查看:grep -c processor /proc/cpuinfo

我用的是双核CPU,负载如果是2.00,说明CPU已经满负荷,如果高于2.00说明有task被等待,远高于2.00的时候就会发生系统响应过慢,目前图中我CPU的load average:0.96,1.12,1.11,说明CPU还是比较空闲。

如果使用的是 n 核CPU,那么为 n.00 时,说明负载满了,高于这个值就应该警惕。

不过对于服务器来说,最好留下一定余地,当参数高于n.00 - 0.3或n.00 - 0.5时,就应该警惕,赶快查看问题

 

第三行,显示了系统的运行的时间!

top与htop字段解释-linux资源监控

PID:进程标志号,是非零正整数

USER:进程所有者的用户名

PR:进程的优先级别

NI:进程的优先级别数值

VIRT:进程占用的虚拟内存值

RES:进程占用的物理内存值

SHR:进程使用的共享内存值

S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数

%CPU:该进程占用的CPU使用率

%MEM:该进程占用的物理内存和总内存的百分比

TIME+:该进程启动后占用的总的CPU时间

COMMAND:进程启动的启动命令名称

 

 

htop 参数

  • -d[刷新时间]-u[指定用户]

  • Space:标记进程,可以一起kill掉

  • U:去掉所有进程上的标记          

  • s:追踪进程

  • l:显示进程打开的文件

     

htop 基本操作

    • F1,h:帮助;

    • F2,S:设置;

    • F3, /:搜索;
      F4,I:反转排序顺序;

    • F5,T:树形显示进程的父进程关系;

    • F6,>:选择字段进行排序;
      F7,],-:增加进程优先级;

    • F8,[,+ :减少进程优先级
      F9,K :kill;

    • F10,Q:退出

 

优势

综上所述,htop相比top有以下优势:

    • 彩色标识CPU、内存、Swap分区
    • CPU、内存、Swap分区使用情况直观易懂
    • 底部有命令提示
    • 支持方向键选择进程