iostat IO状态

该命令⽤于监控CPU占⽤率、平均负载值及I/O读写速度等。 await指的是平均等待时间,⼀般都在10ms左右。


root@ecs-x-large-2-linux-20200309113627:/home# iostat
Linux 4.15.0-169-generic (ecs-x-large-2-linux-20200309113627)   01/05/2023      _x86_64_        (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.30    0.00    0.13    0.03    0.00   99.54

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
loop0             0.08         0.08         0.00      19182          0
loop1             0.01         0.01         0.00       2267          0
loop2             0.02         0.02         0.00       5071          0
vda               1.92         2.92        31.56     679893    7349616


cpu的统计信息,如果是多cpu系统,显示的所有cpu的平均统计信息:
· %user:⽤户进程消耗cpu的⽐例 
· %nice:⽤户进程优先级调整消耗的cpu⽐例 
· %sys:系统内核消耗的cpu⽐例 
· %iowait:等待磁盘io所消耗的cpu⽐例 
· %idle:闲置cpu的⽐例(不包括等待磁盘I/O)

磁盘的统计参数:
· tps:该设备每秒的传输次数。"⼀次传输"意思是"⼀次I/O请求"。 多个逻辑请求可能会被合并为"⼀次I/O请求"。"⼀次传输"请求的⼤⼩是未知的。 
· kB_read/s:每秒从设备(drive expressed)读取的数据量; 
· kB_wrtn/s:每秒向设备(drive expressed)写⼊的数据量; 
· kB_read:读取的总数据量;
· kB_wrtn:写⼊的总数量数据量;这些单位都为Kilobytes。

显示扩展

root@ecs-x-large-2-linux-20200309113627:/home# iostat -x
Linux 4.15.0-169-generic (ecs-x-large-2-linux-20200309113627)   01/05/2023      _x86_64_        (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.30    0.00    0.13    0.03    0.00   99.54

Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
loop0            0.08    0.00      0.08      0.00     0.00     0.00   0.00   0.00    0.06    0.00   0.00     1.02     0.00   0.00   0.00
loop1            0.01    0.00      0.01      0.00     0.00     0.00   0.00   0.00    0.08    0.00   0.00     1.16     0.00   0.01   0.00
loop2            0.02    0.00      0.02      0.00     0.00     0.00   0.00   0.00    0.06    0.00   0.00     1.25     0.00   0.00   0.00
vda              0.15    1.77      2.92     31.53     0.00     1.25   0.00  41.52    2.58    1.37   0.00    19.65    17.85   0.14   0.03




每个输出的含义:
rrqm/s: 每秒对该设备的读请求被合并次数,⽂件系统会对读取同块(block)的请求进⾏合并 
wrqm/s: 每秒对该设备的写请求被合并次数 
r/s: 每秒完成的读次数 
w/s: 每秒完成的写次数 
rkB/s: 每秒读数据量(kB为单位) 
wkB/s: 每秒写数据量(kB为单位) 
avgrq-sz:平均每次IO操作的数据量(扇区数为单位) 
avgqu-sz: 平均等待处理的IO请求队列⻓度 
await: 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位) 
svctm: 平均每次IO请求的处理时间(毫秒为单位) 
%util: 采⽤周期内⽤于IO操作的时间⽐率,即IO队列⾮空的时间⽐率

kb/s显示磁盘信息,每2s刷新⼀次

root@ecs-x-large-2-linux-20200309113627:/home# iostat -d -k 2
Linux 4.15.0-169-generic (ecs-x-large-2-linux-20200309113627)   01/05/2023      _x86_64_        (2 CPU)

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
loop0             0.08         0.08         0.00      19182          0
loop1             0.01         0.01         0.00       2267          0
loop2             0.02         0.02         0.00       5071          0
vda               1.91         2.91        31.52     679893    7351784

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
loop0             0.00         0.00         0.00          0          0
loop1             0.00         0.00         0.00          0          0
loop2             0.00         0.00         0.00          0          0
vda               1.50         0.00        10.00          0         20

kb/s显示磁盘统计信息及扩展信息,每1s刷新 ,刷新5次结束

root@ecs-x-large-2-linux-20200309113627:/home# iostat -dkx 1 5
Linux 4.15.0-169-generic (ecs-x-large-2-linux-20200309113627)   01/05/2023      _x86_64_        (2 CPU)

Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
loop0            0.08    0.00      0.08      0.00     0.00     0.00   0.00   0.00    0.06    0.00   0.00     1.02     0.00   0.00   0.00
loop1            0.01    0.00      0.01      0.00     0.00     0.00   0.00   0.00    0.08    0.00   0.00     1.16     0.00   0.01   0.00
loop2            0.02    0.00      0.02      0.00     0.00     0.00   0.00   0.00    0.06    0.00   0.00     1.25     0.00   0.00   0.00
vda              0.15    1.77      2.91     31.50     0.00     1.25   0.00  41.52    2.58    1.37   0.00    19.65    17.84   0.14   0.03

Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
loop0            0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00
loop1            0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00
loop2            0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00
vda              0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00

Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
loop0            0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00
loop1            0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00
loop2            0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00
vda              0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00

Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
loop0            0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00
loop1            0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00
loop2            0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00
vda              0.00    2.00      0.00     16.00     0.00     2.00   0.00  50.00    0.00    0.00   0.00     0.00     8.00   0.00   0.00

Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
loop0            0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00
loop1            0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00
loop2            0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00
vda              0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00


swapon查看分区使⽤情况 # swapon -s

我们在安装系统的时候已经建⽴了 swap 分区。swap 分区通常被称为交换分区,这是⼀块特殊的硬盘空间,即当实际内存不够⽤的时候,操作系统会从内存中取出⼀部分暂时不⽤的数据,放在交换分区中,从⽽为当前运⾏的程序腾出⾜够的内存空间。 也就是说,当内存不够⽤时,我们使⽤ swap 分区来临时顶替。这种“拆东墙,补⻄墙”的⽅式应⽤于⼏乎所有的操作系统中


⼀般来讲,swap 分区容量应⼤于物理内存⼤⼩,建议是内存的两倍,但不超过 2GB。



df硬盘的使用情况

查看⽂件系统的硬盘挂载点和空间使⽤情


root@ecs-x-large-2-linux-20200309113627:/home# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            1.9G     0  1.9G   0% /dev
tmpfs           395M  7.7M  387M   2% /run
/dev/vda1        40G  6.3G   31G  17% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/loop0       50M   50M     0 100% /snap/snapd/17883
/dev/loop1       64M   64M     0 100% /snap/core20/1778
/dev/loop2      135M  135M     0 100% /snap/cmake/1210
tmpfs           395M     0  395M   0% /run/user/0

du目录文件大小


显示M或K单位
root@ecs-x-large-2-linux-20200309113627:/home# du -h
8.0K    ./Demo
8.0K    ./etcd_msg_server/.vscode
132K    ./etcd_msg_server/log
19M     ./etcd_msg_server
19M     .

---------------------------------------------------------
显示目录和目录下的文件占用的磁盘空间大小
root@ecs-x-large-2-linux-20200309113627:/home# du -a
4       ./Demo/main.cc
8       ./Demo
12      ./etcd_msg_server/FileHandler.cpp
4       ./etcd_msg_server/FileHandler.h
8       ./etcd_msg_server/LoginServerDiscovery.cpp
8       ./etcd_msg_server/msg_server.cpp
10352   ./etcd_msg_server/core
8       ./etcd_msg_server/LoginServConn.cpp
16      ./etcd_msg_server/RouteServConn.cpp
4       ./etcd_msg_server/AttachData.cpp
4       ./etcd_msg_server/policy.xml
4       ./etcd_msg_server/FileServConn.h
8       ./etcd_msg_server/PushServConn.cpp
0       ./etcd_msg_server/test
12      ./etcd_msg_server/ImUser.cpp
4       ./etcd_msg_server/LoginServerDiscovery.h
4       ./etcd_msg_server/.vscode/settings.json
8       ./etcd_msg_server/.vscode
24      ./etcd_msg_server/GroupChat.cpp
36      ./etcd_msg_server/MsgConn.cpp
12      ./etcd_msg_server/jsonxx.h
32      ./etcd_msg_server/jsonxx.cpp
4       ./etcd_msg_server/LoginServConn.h
4       ./etcd_msg_server/msgserver.conf
4       ./etcd_msg_server/AttachData.h
4       ./etcd_msg_server/server.pid
12      ./etcd_msg_server/FileServConn.cpp
8388    ./etcd_msg_server/msg_server
4       ./etcd_msg_server/MsgConn.h
32      ./etcd_msg_server/DBServConn.cpp
4       ./etcd_msg_server/ImUser.h
4       ./etcd_msg_server/PushServConn.h
4       ./etcd_msg_server/CMakeLists.txt
4       ./etcd_msg_server/DBServConn.h
4       ./etcd_msg_server/log4cxx.properties
128     ./etcd_msg_server/log/default.log
0       ./etcd_msg_server/log/TEST.log
132     ./etcd_msg_server/log
4       ./etcd_msg_server/GroupChat.h
4       ./etcd_msg_server/RouteServConn.h
19172   ./etcd_msg_server
19184   .

-------------------------------------------------------------------------
-a以字节,-ha以M或K
root@ecs-x-large-2-linux-20200309113627:/home# du -ha
4.0K    ./Demo/main.cc
8.0K    ./Demo
12K     ./etcd_msg_server/FileHandler.cpp
4.0K    ./etcd_msg_server/FileHandler.h
8.0K    ./etcd_msg_server/LoginServerDiscovery.cpp
8.0K    ./etcd_msg_server/msg_server.cpp
11M     ./etcd_msg_server/core
8.0K    ./etcd_msg_server/LoginServConn.cpp
16K     ./etcd_msg_server/RouteServConn.cpp
4.0K    ./etcd_msg_server/AttachData.cpp
4.0K    ./etcd_msg_server/policy.xml
4.0K    ./etcd_msg_server/FileServConn.h
8.0K    ./etcd_msg_server/PushServConn.cpp
0       ./etcd_msg_server/test
12K     ./etcd_msg_server/ImUser.cpp
4.0K    ./etcd_msg_server/LoginServerDiscovery.h
4.0K    ./etcd_msg_server/.vscode/settings.json
8.0K    ./etcd_msg_server/.vscode
24K     ./etcd_msg_server/GroupChat.cpp
36K     ./etcd_msg_server/MsgConn.cpp
12K     ./etcd_msg_server/jsonxx.h
32K     ./etcd_msg_server/jsonxx.cpp
4.0K    ./etcd_msg_server/LoginServConn.h
4.0K    ./etcd_msg_server/msgserver.conf
4.0K    ./etcd_msg_server/AttachData.h
4.0K    ./etcd_msg_server/server.pid
12K     ./etcd_msg_server/FileServConn.cpp
8.2M    ./etcd_msg_server/msg_server
4.0K    ./etcd_msg_server/MsgConn.h
32K     ./etcd_msg_server/DBServConn.cpp
4.0K    ./etcd_msg_server/ImUser.h
4.0K    ./etcd_msg_server/PushServConn.h
4.0K    ./etcd_msg_server/CMakeLists.txt
4.0K    ./etcd_msg_server/DBServConn.h
4.0K    ./etcd_msg_server/log4cxx.properties
128K    ./etcd_msg_server/log/default.log
0       ./etcd_msg_server/log/TEST.log
132K    ./etcd_msg_server/log
4.0K    ./etcd_msg_server/GroupChat.h
4.0K    ./etcd_msg_server/RouteServConn.h
19M     ./etcd_msg_server
19M     .

---------------------------------------------------------------
显示当前所在目录大小
root@ecs-x-large-2-linux-20200309113627:/home# du -s
19184   .

------------------------------------------------------------------
显示Demo目录大小
root@ecs-x-large-2-linux-20200309113627:/home# du -s -h Demo
8.0K    Demo

----------------------------------------------------------------
显示几个目录或文件占用的磁盘空间大小,和总和
root@ecs-x-large-2-linux-20200309113627:/home# du -c
8       ./Demo
8       ./etcd_msg_server/.vscode
132     ./etcd_msg_server/log
19172   ./etcd_msg_server
19184   .
19184   total

----------------------------------------------------------------------
查看当前目录下一级子文件和子目录占用的磁盘容量
root@ecs-x-large-2-linux-20200309113627:/home# du -lh --max-depth=1
8.0K    ./Demo
19M     ./etcd_msg_server
19M     .