性能学习笔记

 好久之前就列出了性能学习的计划,xmind画了一大坨东东,只是一直没有真正实施起来,如今作个开篇吧。ios

 iostat做为io性能分析的利器,早就想仔细看看了,列出经常使用参数说明:ide

参数说明:性能

-d 查看io设备的统计信息学习

-c 查看CPU相关的统计信息:spa

%user 用户态消耗的时间orm

%nice 用户进程空间中被调整过nice的进程消耗的时间队列

%sys 内核态消耗的时间进程

%idle 空闲实现文档

-x 查看io设备详细的统计信息:it

 rrqm/s:   每秒进行 merge 的读操做数目。即 delta(rmerge)/s
 wrqm/s:  每秒进行 merge 的写操做数目。即 delta(wmerge)/s
 r/s:           每秒完成的读 I/O 设备次数。即 delta(rio)/s 
 w/s:         每秒完成的写 I/O 设备次数。即 delta(wio)/s
 rsec/s:    每秒读扇区数。即 delta(rsect)/s 
 wsec/s:  每秒写扇区数。即 delta(wsect)/s
 rkB/s:      每秒读K字节数。是 rsect/s 的一半,由于每扇区大小为512字节。(须要计算)
 wkB/s:    每秒写K字节数。是 wsect/s 的一半。(须要计算)
 avgrq-sz: 平均每次设备I/O操做的数据大小 (扇区)。delta(rsect+wsect)/delta(rio+wio)
 avgqu-sz: 平均I/O队列长度。即 delta(aveq)/s/1000 (由于aveq的单位为毫秒)。
 await:    平均每次设备I/O操做的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)
 svctm:   平均每次设备I/O操做的服务时间 (毫秒)。即 delta(use)/delta(rio+wio) 
 %util:      一秒中有百分之多少的时间用于 I/O 操做,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (由于use的单位为毫秒)

做为硬件白痴我对avgqu-sz中的io队列的实现方式感兴趣,查了一些文档发现io队列应该是在OS层的东东,并非由硬盘自己来控制的,理论上硬盘操做都是串行的,若是作raid就至关因而在并行,可是应该是说io队列的消费速度快了,整个存储的传输效率和容错性都提高了。不知道对io队列的理解是否正确?有待进一步研究。

另外mac下如何查看nice值呢,top命令里没有说明如何显示,ps xl却是能够。

准备分析一个线上系统来验证一些想法,由于这个系统的IO压力仍是比较大的,并且突发性很强,因此,用这个系统来分析系统IO的性能是个不错的选择,下周开搞,在补充完这个学习笔记吧。

相关文章
相关标签/搜索