查看DAID设备Linux,linux监控命令vmstat、iostat、inotifywait

linux监控命令vmstat、iostat、inotifywait

首页 计算机相关 linux命令 linux监控命令vmstat、iostat、inotifywait

vmstat 可以打印出进程,内存,页,块io,磁盘,cpu等使用情况,第一次显示的信息是从开机到现在的平均值,后面则是当前的平均使用情况。-S 后面可以接单位,例如 K/M显示内存

-a inactive - 长时间未访问,如果需要可以立即回收

active - 最近访问过的页面,不能很快被回收

使用 inac/active 来取代 buffer/cache 的内存输出信息

-f 开机到目前为止,系统fork的程序数

-s 将一些事件开机至目前为止,导致的内存变化情况列表说明

-d 列出磁盘的读写总量统计表

-p 后面列出分区,可显示该分区的读写总量统计表#显示一次,开机到现在的平均使用情况

[freecls@izj6cfw9yi1iqoik31tqbgz ~]$ vmstat

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----

r b swpd free buff cache si so bi bo in cs us sy id wa st

3 0 0 65564 365148 335876 0 0 5 7 14 17 0 0 100 0 0#2秒1次,显示5次,以内存以MB单位显示

vmstat 2 5 -S M

#两秒显示一次

vmstat 2

字段说明,读者可以参考 linux命令-top 获取相关的额外解释。r 运行队列中进程的数量,长期大于1证明cpu不够

b 等待io的进程数量

swpd 交换的内存数量,大于0但是si,so长期为0

代表之前某段时间内存不足,现在不影响

free 空闲的内存

buff 内存缓冲区

cache 内存缓存

#如果不为0,代表目前内存不足

si swap in 磁盘交换进内存

so swap out 内存交换出磁盘

#磁盘io情况

bi block in 每秒从磁盘读取的块数到内存

bo block out 每秒从内存写入到磁盘的块数

#这两个数越大,代表系统cpu越繁忙

in 每秒中断数,包括时钟中断

cs 每秒上下文切换数

us 用户cpu

sy 内核cpu

id 空闲cpu

wa io等待时间

st Steal Time(与其他虚拟机竞争cpu)

有时候我们在测试的时候在连续的读写文件,但是bi,bo为0,那是因为缓冲区的原因,内核为了性能考虑,当要有数据写入到磁盘的时候,先不写入,等到合适的时机才会写入到磁盘。

从磁盘读取数据也一样,比如我们调用了10次 read() 操作,可能只有1次从磁盘读取到内存的操作,其他9次只是在内存里复制数据,因为内核为了性能考虑,会一次性读取大于所请求的字节数到内存缓存,那么下次连续的读取就可以直接从内存拿。

iostat 也可以用来统计cpu以及输入输出统计,不过在磁盘监控方面功能更加强大,可以细化到特定的磁盘。#证明没安装

-bash: iostat: command not foundyum install sysstat#默认单位为块(block)

-k 单位K

-m 单位M

-p 监控特定磁盘

-c 仅显示 CPU 的状态

-d 仅显示储存设备的状态,不可与 -c 一起用

-t 显示日期出来

-x 详细信息

-N LVM#2秒显示一次

[root@192 ~]# iostat 2

Linux 3.10.0-514.el7.x86_64 (192.168.1.10) 07/06/2018 _x86_64_(2 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle

0.03 0.00 0.09 0.05 0.00 99.84

Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn

sdb 0.00 0.03 0.00 2647 0

sda 1.01 12.94 215.27 986140 16403137#2s一次,只监控磁盘,单位M

iostat -dm 2

#2s一次,只监控sda磁盘,单位M

iostat -dm -p sda 2#显示详细信息

[root@192 ~]# iostat -dmx 2

Linux 3.10.0-514.el7.x86_64 (192.168.1.10) 07/06/2018 _x86_64_(2 CPU)

Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util

sdb 0.00 0.00 0.00 0.00 0.00 0.00 15.95 0.00 1.69 1.69 0.00 1.39 0.00

sda 0.02 0.38 0.45 0.56 0.01 0.21 450.99 0.03 27.42 4.58 45.78 1.10 0.11

参数解释rrqm/s: 加入到设备队列的每秒merged读请求书。

wrqm/s: 加入到设备队列的每秒merged写请求数。

r/s: merge后,每秒完成的读请求数

w/s: merge后,每秒完成的写请求数

rkB/s: 每秒读数量(单位可以自己指定)。

wkB/s: 每秒写数量(单位可以自己指定)

avgrq-sz: 对设备请求的平均大小(扇区)

avgqu-sz: 对设备请求的平均队列长度

await: 对设备请求的io等待时间(毫秒)

r_await: 对设备读请求的io等待时间(毫秒)

w_await: 对设备写请求的io等待时间(毫秒)

svctm: 对设备的平均服务时间(毫秒)-后期会移除,不太可靠

%util: 对io设备的请求百分比时间流逝。

rrqm/s 和 r/s 以及 wrqm/s 和 w/s是对应的,前者大于后者证明io比较忙碌。

如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经接近饱和,该磁盘可能存在瓶颈。

如果 avgqu-sz 比较大,也表示有相当多的io在等待。

inotifywait 命令可以用来监控文件或者目录下的文件变动。#证明没安装

-bash: inotifywait: command not foundyum install inotify-tools-m, --monitor 是要持续监视变化。

-r 使用递归形式监视目录。

-q 减少冗余信息,只打印出需要的信息。

-e 指定要监视的事件列表。

--timefmt 是指定时间的输出格式。

--format 指定文件变化的详细信息。

access 访问,读取文件。

modify 修改,文件内容被修改。

attrib 属性,文件元数据被修改。

move 移动,对文件进行移动操作。

create 创建,生成新文件

open 打开,对文件进行打开操作。

close 关闭,对文件进行关闭操作。

delete 删除,文件被删除。

close_write, close_nowrite, unmount#监视文件

[root@192 ~]# inotifywait -m tmp.txt

Setting up watches.

Watches established.

tmp.txt OPEN

tmp.txt MODIFY

tmp.txt CLOSE_WRITE,CLOSE#递归监视目录下所有文件

inotifywait -mqr /var/log/#递归监控当前目录下 创建文件事件

inotifywait -mr -e create ./

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值