top是Linux下一个常用命令,用来监视系统的运行状况,类似于Windows的任务管理器,下图是top
命令的运行界面:
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
运行界面就变得不言而喻了,下面简要介绍一下可以在htop运行界面执行的相关命令:
第一行与第二行,显示CPU当前的运行负载,我这里是双CPU就显示两行!
第三行,显示内存的使用情况!
第四行,显示交换分区使用情况!
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时,就应该警惕,赶快查看问题
第三行,显示了系统的运行的时间!
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分区使用情况直观易懂
- 底部有命令提示
- 支持方向键选择进程
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:top与htop字段解释-linux资源监控 - Python技术站