4.I/O 性能监控

4.1 I/O性能监控简介

磁盘I/O子系统是Linux系统中最慢的部分,这个主要归于CPU到物理操作磁盘之间的距离;如果那读取磁盘和读取内存的时间进行比较好比 7天和7分钟的区别;因此,Linxu内核就是要最低程度的降低I/O数。

1. buffer和cache的作用

当一个进程启动时,内核会先扫描caches和内存中有没有进程需要的数据,如果有就直接用,修改后在把脏页同步到磁盘即可。如果没有,则需要把磁盘的数先写到内存中的高速缓存中cache,这样能减少CPU等待时间,提高效率。

buffer、cache都是把磁盘数据写到内存中时用的,说白了他们俩都是内存的一部分;不过cache是高速缓存是把进程用的数据写到cache来减少cpu读取数据时间的;而buffer是当从磁盘中读取很长的数据,首先读入的一部分要放在buffer暂时存放,读完后一起使用;所以在cache占用的内存比较大时不能说系统性能差

2. 内存页的分类(type of memory pages)

(1) Read Pages  只读内存页,在buffer和cache中,进程不能修改

(2) Dirty Pages  脏页,这些页是在内核中已经被修改的数据页,要同步到磁盘

(3) Anonymous Pages 属于某一个进程,没有任何磁盘和他们相关,如果内存不足,kswapd进程将他们写入swap来释放内存空间

 4.2 I/O监控

1. 每个I/O请求到磁盘都需要若干时间,主要因为磁盘的盘边必须旋转,机头必须寻到(从硬盘读写时,硬盘指示灯会一直闪)

Input/Output Operations Per Second 即每秒进行读写操作的次数,是衡量I/O性能的标准

2. 当cpu的 wa比较大时,说明CPU在等待I/O操作,说明磁盘处于超负荷状态

    监控swap和系统分区,确保virtual memory不是文件系统的I/O瓶颈 


5. 1 cpu sys 说明系统本身的调用占用的cpu比较高,这个cpu sys 比较高,一般是有大量的io操作;disk read disk writte;

    数据加载到内存中可以用lock把数据锁住,这样再我们的内存不够需要交换出一部分数据到磁盘时,就不会把lock的数据交换出去;

否则会交换出去,然后下次用时需要重新read到内存中。这样会影响服务的latency、io

你可能感兴趣的:(4.I/O 性能监控)