目录
一、uptime
uptime可以告诉你系统已经运行了多久。uptime命令回显一行信息,包括:系统运行了多久,目前有多少用户在登录,过去1、5、15分钟系统平均负载。这些内容和命令w回显的第一行完全一样。
系统平均负载指的是,过去一段时间内(1、5、15分钟)处于runnable或uninterruptable状态的进程数的平均值。处于runnable状态的进程正在使用或等待使用CPU。处于uninterruptable状态的进程等待IO。
系统中的平均负载没有对CPU数量进行标准化。因此在1个CPU系统中,平均负载为1意味着CPU一直在加载。而在4个CPU的系统中,这意味着75%的时间是空闲的。
w
15:55:07 up 1 day, 20:44, 1 user, load average: 0.42, 0.42, 0.39
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.250.7 15:50 3.00s 1:14m 0.01s w
uptime
15:55:10 up 1 day, 20:44, 1 user, load average: 0.42, 0.42, 0.39
二、iostat
iostat命令生成两个报告:CPU利用率报告、设备利用率报告
iostat
Linux 3.10.0-1160.15.2.el7.x86_64 (ibjvm-010) 04/08/2021 _x86_64_ (8 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
3.30 0.00 1.69 0.16 0.00 94.85
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.66 3.64 5.53 591832 899572
sdc 0.13 0.14 56.55 22339 9197761
sdb 6.29 4.57 64.14 742890 10432067
scd0 0.47 56.13 0.00 9128646 0
dm-0 0.67 3.56 5.52 579368 897484
dm-1 0.00 0.01 0.00 2204 0
dm-2 6.70 4.56 64.14 741854 10432067
CPU利用率报告,可以用iostat -c单独显示。对于多进程系统,CPU利用率是全局所有CPU的平均值。报告分为6列。
- %user:用户级(应用)的CPU使用百分比
- %nice:带有nice优先级的 用户级(应用)的CPU使用百分比
- %system:系统级(内核)的CPU使用百分比
- %iowait:系统发生磁盘I/O操作时,CPU空闲时间的百分比
- %steal:当虚拟层为一个虚拟处理器提供服务时,虚拟CPU或CPU被迫花费的等待时间的百分比
- %idle:系统没有发生磁盘I/O操作时,CPU空闲时间的百分比
设备利用率报告,可以用iostat -d单独显示。
该报告以物理设备或分区为基础提供统计信息。
可以在命令行中输入要显示统计信息的块设备和分区。
如果没有输入设备或分区,则显示系统所使用的每个设备的统计信息,并提供内核维护这些设备的统计信息。
如果命令行中给出了ALL关键字,那么就显示系统定义的每个设备的统计数据,包括那些从未使用过的设备。
默认情况下,传输速率以1K块的形式显示。如果设置了环境变量POSIXLY_CORRECT,在这种情况下使用512字节的块。
根据使用的标志,报告显示不同字段,介绍默认的几个,其他man iostat:
- Device:设备名称
- tps:每秒发送到该设备的传输数,一次传输指的是向该设备的一次I/O请求。多次逻辑上的请求会合并成一次I/O请求,因此每次I/O请求的传输规模不确定
- Blk_read/s (kB_read/s, MB_read/s):该设备读取的数据量,以每秒的块数(千字节、兆字节)表示。块相当于扇区,因此其大小为512字节。
- Blk_wrtn/s (kB_wrtn/s, MB_wrtn/s):该设备写入的数据量,单位为块数(千字节、兆字节)。
- Blk_read (kB_read, MB_read):该设备,读取的块总数(千字节、兆字节)。
- Blk_wrtn (kB_wrtn, MB_wrtn):该设备,写入的块的总数(千字节、兆字节)。
三、vmstat
报告虚拟内存统计信息。回显内容很多,具体怎么参考使用需要经验积累。一般swap不应使用,内存不应使用率过高。cpu等待I/O不应太多,空闲太少说明cpu太忙。
vmstat -w
procs -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu--------
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 0 2485064 2224 1613348 0 0 8 16 31 20 3 2 95 0 0
vmstat -wa
procs -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu--------
r b swpd free inact active si so bi bo in cs us sy id wa st
2 0 0 2484884 935644 3949916 0 0 8 16 31 20 3 2 95 0 0
回显分为多个区域,逐个说明或man vmstat
procs
- r,处于runnable状态的进程数
- b,等待I/O结束的进程数
memory
- swpd,使用的虚拟内存量
- free,空闲的内存量
- buff,缓冲区
- cache,高速缓存
- inact,不活动的内存(-a显示)
- active,活动的内存(-a显示)
swap
- si,每秒从swap分区读入内存的数据量
- so,每秒从内存写入swap分区的数据量
io
- bi,每秒从块设备接收数据块数
- bo,每秒向块设备发送数据块数
system
- in,每秒中断数,包括时钟
- cs,每秒上下文切换数
cpu,这一部分参考iostat,几乎可以一一对应
- us,用户时间(应用,包括nice级别的)
- sy,系统时间(内核)
- id,非等待I/O的空闲时间
- wa,等待I/O的空闲时间
- st,虚拟机层面损耗的时间
四、sar
sar收集、报告、保存系统活动信息(system activity information),相当于每10分钟统计一次iostat -c,可以看到一段时间内CPU使用率的变化情况,内容也和iostat -c回显列一样。
sar
Linux 3.10.0-1160.15.2.el7.x86_64 (ibjvm-010) 04/08/2021 _x86_64_ (8 CPU)
12:00:01 AM CPU %user %nice %system %iowait %steal %idle
12:10:01 AM all 3.25 0.00 1.64 0.11 0.00 95.00
12:20:01 AM all 3.30 0.00 1.70 0.12 0.00 94.88
12:30:01 AM all 3.30 0.00 1.68 0.11 0.00 94.91
12:40:01 AM all 3.33 0.00 1.70 0.12 0.00 94.85
......