Linux中主机监测命令:top、df等命令说明
一、查看系统资源占用:top
1.1 top命令概述
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。如果在前台执行该命令,它将独占前台,直到用户终止该程序为止。比较准确的说,top命令提供了实时的对系统处理器的状态监视。它将显示系统中CPU最“敏感”的任务列表。该命令可以按CPU使用、内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。
1.2 top命令输出结果解释
top
top命令输出内容由两部分组成,上部分是系统整体资源说明,下部分则是进程说明
1.2.1 系统整体资源说明
该部分一种有五行数据,下面分别进行解释
-
第一行
top - 21:42:18 up 2:39, 3 users, load average: 0.00, 0.01, 0.05
参数 说明 top 命令名称 21:42:18 系统的当前时间 up 主机运行的总时间 users 当前主机的登录用户数 load average 系统负载,三个数值分别为 1分钟、5分钟、15分钟的负载情况。 - load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
-
第二行
Tasks: 228 total, 1 running, 227 sleeping, 0 stopped, 0 zombie
参数 说明 Tasks 进程数说明 total 当前主机的总进程数 running 当前正在运行的进程数。running数越多,主机负载越大 sleeping 当前休眠的进程数 stopped 当前停止的进程数 zombie 僵尸进程数 -
第三行
%Cpu(s): 0.0 us, 0.2 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
参数 说明 %Cpu(s) CPU使用率说明 us 用户CPU使用率 sy 系统CPU使用率 ni 高优先级进程占用CPU时间百分比 id 空闲CPU率 wa IO等待CPU占用率 hi CPU硬件中断率 si CPU软件中断率 st 强制等待占用CPU率 -
第四行
KiB Mem : 4025948 total, 2182876 free, 893404 used, 949668 buff/cache
参数 说明 KiB Mem 物理内存说明 total 物理内存总量 free 空闲内存总量 used 使用的内存总量 buff/cache 用作内核缓存的内存总量 -
第五行
KiB Swap: 2097148 total, 2097148 free, 0 used. 2857828 avail Mem
参数 说明 KiB Swap 虚拟内存(交换空间)说明 total 交换区总量 free 空闲交换区总量 used 使用的交换区总量 avail Mem 缓冲的交换区总量
1.2.2 进程说明
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
736 root 20 0 295564 5328 4068 S 0.3 0.1 0:17.69 vmtoolsd
61076 root 20 0 168576 6928 5284 S 0.3 0.2 0:00.16 sshd
1 root 20 0 191412 4400 2644 S 0.0 0.1 0:02.96 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
6 root 20 0 0 0 0 S 0.0 0.0 0:00.22 ksoftirqd/0
参数 | 说明 |
---|---|
PID | 进程id |
USER | 进程所属用户 |
PR | 进程优先级,越小越高 |
NI | nice值,负值表示高优先级,正表示低优先级 |
VIRT | 进程使用虚拟内存,单位KB |
RES | 进程使用物理内存,单位KB |
SHR | 进程使用共享内存,单位KB |
S | 进程状态(S休眠,R运行,Z僵死状态,N负数优先级,I空闲状态 |
%CPU | 进程占用CPU率 |
%MEM | 进程占用内存率 |
TIME+ | 进程使用CPU时间总计,单位10毫秒 |
COMMAND | 命令名/命令行 |
上述的参数为默认显示的,相对比较重要,除此之外,还有别的参数,如:
PPID:父进程id
GROUP:进程所有者的组名
SWAP:进程使用的虚拟内存中被换出的大小
CODE:可执行代码占用的物理内存大小,单位kb
DATA:可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
nFLT:页面错误次数
nDRT:最后一次写入到现在,被修改过的页面数。
WCHAN:若该进程在睡眠,则显示睡眠中的系统函数名
Flags:任务标志。
1.3 top命令选项
top命令也支持参数选项
- 语法
top [参数选项]
-
常用的参数选项
参数选项 说明 -d 设置刷新时间,默认为5s -p 只显示某个进程的信息 -c 显示产生进程的完整命令,默认为进程名 -n 指定刷新次数 -b 以非交互非全屏模式运行,以批次的方式执行top,一般配合 -n 指定输出几次统计信息,将输出重定向到指定文件 -i 不显示任何闲置 (idle) 或无用 (zombie) 的进程 -u 查找特定用户启动的进程 -
实例
-
刷新输出3次后退出
top -n 3
-
刷新输出3次后退出,并将输出内容写入到 top.log 中
top -b -n 3 > top.log
-
查找tom用户启动的进程
top -u tom
-
1.4 top交互式选项
当top以交互式运行(即默认命令,非-b选项启动),可以用以下交互式命令进行控制
按键 | 说明 |
---|---|
h键 | 按下h键,会显示帮助画面;ESC键返回 |
c键 | 按下c键,会显示产生进程的完整命令,等同于-c参数,再次按下c键,变为默认显示 |
f键 | 按下f键,可以选择需要展示的项目 |
M键 | 按下M键,根据驻留内存大小(RES) 排序 |
P键 | 按下P键,根据CPU使用百分比大小进行排序 |
T键 | 按下T键,根据时间/累计时间进行排序 |
E键 | 按下E键,切换顶部内存显示单位 |
e键 | 按下e键,切换进程内存显示单位 |
1键 | 按下1键,切换显示平均负载和启动时间信息 |
i键 | 按下i键,不显示闲置或无用的进程,等同于-i参数,再次按下,变为默认显示 |
t键 | 按下t键,切换显示CPU状态信息 |
m键 | 按下m键,切换显示内存信息 |
-
实例
-
h键,获取帮助
-
按下f键,可以选择需要展示的项目
选择需要显示的参数,并且按 d 键;带 * 的则是显示的参数
-
二、磁盘信息监控:df
2.1 df命令概述
使用df命令,可以查看硬盘的使用情况
-
语法
df [-h]
建议-h配套使用,以更加人性化的单位显示
-
实例
-
查看当前主机的磁盘使用情况
df -h
-
三、磁盘速率监控:iostat
3.1 iostat概述
可以使用iostat查看CPU、磁盘的相关信息
-
语法
iostat [-x] [num1] [num2]
- 选项说明
- -x,显示更多信息
- num1:数字,刷新间隔
- num2:数字,刷新几次
- 选项说明
-
实例
-
查看当前磁盘速率
[root@localhost ~]# iostat Linux 3.10.0-1160.88.1.el7.x86_64 (localhost.localdomain) 2023年04月20日 _x86_64_ (2 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.11 0.01 0.36 0.01 0.00 99.52 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 2.63 66.01 7.26 915059 100700 dm-0 2.65 65.01 6.96 901194 96425 dm-1 0.01 0.16 0.00 2204 0 dm-2 0.01 0.10 0.16 1449 2206
-
查看当前磁盘速率详细信息,并且每隔5s刷新一次,共刷新三次
iostat -x 5 3
-
-
结果参数说明
结果显示的参数比较多,重点关注三个:rKB/s、wKB/s、%util
rKB/s:每秒发送到设备的读取请求数
wKB/s:每秒发送到设备的写入请求数
%util:磁盘利用率