我做的网站怎样推广,一个完整的产品规划方案,安卓下载安装,苏州seo关键词排名磁盘监控原理
设备又名I/O设备#xff0c;泛指计算机系统中除主机以外的所有外部设备。
1.1 计算机分类
1.1.1 按照信息传输速度分#xff1a;
1.低速设备#xff1a;每秒传输信息仅几个字节或者百个字节#xff0c;如#xff1a;键盘、鼠标等
2.中速设备#xff1a…磁盘监控原理
设备又名I/O设备泛指计算机系统中除主机以外的所有外部设备。
1.1 计算机分类
1.1.1 按照信息传输速度分
1.低速设备每秒传输信息仅几个字节或者百个字节如键盘、鼠标等
2.中速设备每秒传输信息数千个字节或者数万个字节如打印机
3.高速设备每秒传输信息数数10万个字节如磁盘
1.1.2 按照信息交换单位分
1.字符设备以字符为输入/输出信息的单位如键盘显示终端
2.块设备以数据块为单位输入/输出信息如磁盘
注何为数据块磁盘中常以一个扇区作为一个数据块一个扇区就是一个读写单位
一、磁盘性能指标
1、测试磁盘性能使用命令dd
因数据写入磁盘可能是缓存写直接写不经过缓冲区直接写入磁盘顺序io随机io的区别所以这种dd测试并不是很准确。
这不是一个专业的测试工具不过如果对于测试结果的要求不是很苛刻的话,平时可以使用来对磁盘的读写速度作一个简单的评估.
在使用前首先了解两个特殊设备 /dev/null 伪设备,回收站.写该文件不会产生IO /dev/zero 伪设备,会产生空字符流,对它不会产生IO
测试磁盘写速率
[rootlocalhost ~]# time dd if/dev/zero of/test.dbf bs8k count300000 #注意会在根目录下产生一个test.dbf文件记得测试完后删除
3000000 records in
3000000 records out
2457600000 bytes (2.5 GB) copied, 68.191 seconds, 36.0 MB/s #写速率36MB/sreal 1m13.960s
user 0m0.077s
sys 0m5.272s测试磁盘读速率
[rootlocalhost ~]# time dd if/test.dbf of/dev/null bs8k #读test.dbf文件
3000000 records in
3000000 records out
2457600000 bytes (2.5 GB) copied, 36.2647 seconds, 67.8 MB/s #读速率67.8MB/sreal 0m36.331s
user 0m0.018s
sys 0m2.823s二、磁盘性能监控
1. 获取iops
[rootlocalhost ~]# iostat -m 3
Linux 2.6.18-238.el5 (localhost.localdomain) 08/03/2017avg-cpu: %user %nice %system %iowait %steal %idle0.01 0.09 0.87 0.87 0.00 98.16Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 6.91 0.44 0.36 6162 5009
sda1 0.01 0.00 0.00 1 0
sda2 6.90 0.44 0.36 6161 5009
dm-0 100.40 0.44 0.36 6160 5009
dm-1 0.01 0.00 0.00 0 0tps该设备每秒的传输次数Indicate the number of transfers per second that were issued to the device.。 “一次传输意思是一次I/O请求”。多个逻辑请求可能会被合并为一次I/O请求。一次传输请求的大小是未知的。
- MB_read/s每秒从设备drive expressed读取的数据量
- MB_wrtn/s每秒向设备drive expressed写入的数据量
- MB_read读取的总数据量
- MB_wrtn写入的总数量数据量这些单位都为Kilobytes。2. 获取IOPS、io队列、io等待、io响应时间等
[rootlocalhost ~]# iostat -xm 3 #m 代表以MB为单位显示。
Linux 2.6.18-238.el5 (localhost.localdomain) 08/03/2017avg-cpu: %user %nice %system %iowait %steal %idle0.00 0.00 3.67 23.14 0.00 73.19Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await svctm %util
sda 304.67 0.33 636.00 3.33 76.76 0.01 245.93 2.40 3.53 1.56 99.87
sda1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sda2 304.67 0.33 636.00 3.33 76.76 0.01 245.93 2.40 3.53 1.56 99.87
dm-0 0.00 0.00 941.33 3.67 76.78 0.01 166.43 3.25 3.30 1.06 99.87
dm-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00rrqm/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队列非空的时间比率3. IO评估指标 vmstat Block in /out bibo过大而且vmstat cpu wa值较大应该考虑均衡磁盘负载可以结合iostat输出来分析。 IOwait time iostat iowait% 小于25%说明IO性能处于良好的状态 util 磁盘使用率 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的即 delta(use)/s/1000 (因为use的单位为毫秒) 如果 %util 接近 100%说明产生的I/O请求太多I/O系统已经满负荷该磁盘可能存在瓶颈。idle小于70% IO压力就较大了一般读取速度有较多的wait。同时可以结合vmstat 查看查看b参数(等待资源的进程数)和wa参数(IO等待所占用的CPU时间的百分比高过30%时IO压力高)。 await 平均等待时间 平均每次设备I/O操作的等待时间 (毫秒).即 delta(rusewuse)/delta(riowio) await 的大小一般取决于服务时间(svctm) 以及 I/O 队列的长度和 I/O 请求的发出模式。 await 的参数要多和 svctm 来参考。差的过高就一定有 IO 的问题。如果 svctm 比较接近 await说明 I/O 几乎没有等待时间如果 await 远大于 svctm说明I/O 队列太长io响应太慢则需要进行必要优化。如果响应时间超过了用户可以容许的范围这时可以考虑更换更快的磁盘调整内核 elevator 算法优化应用。 avgqu-sz 平均I/O队列长度 如果avgqu-sz比较大也表示有大量io在等待。 avgqu-sz 也是个做 IO 调优时需要注意的地方这个就是直接每次操作的数据的大小如果次数多但数据拿的小的话其实 IO 也会很小。如果数据拿的大IO 的数据会高。也可以通过 avgqu-sz × ( r/s or w/s ) rsec/s or wsec/s。也就是讲读写速度是这个来决定的。 由于 avgqu-sz 是按照单位时间的平均值所以不能反映瞬间的 I/O 洪水。
4. iotop
里面最重要的参数actual disk read 和actual disk write 分别代表实际磁盘读写速度
然后下面我们可以根据每一列进行io排序就能知道io具体消耗是哪个进程导致的。
注意TID代表的是线程号如果是多线程的话可以借助command 判断是哪个进程也可以根据ps -eLf | grep TID 来获取到他的父进程号。