今天听到看部门同事有遇到IO过高的问题,简单的查询了下
iostat命令:
%user:cpu处在用户模式下的时间百分比。
%nice:cpu处在带NICE值的用户模式下的时间百分比。
%system:cpu处在系统模式下的时间百分比。
%iowait:cpu等待输入输出完成时间的百分比。
%steal:管理程序维护另一个虚拟处理器时,虚拟cpu的无意识等待时间百分比。
%IDle:cpu空闲时间百分比。
如果%iowait的值过高,表示硬盘存在I/O瓶颈
如果%IDle值高,表示cpu较空闲
如果%IDle值高但系统响应慢时,可能是cpu等待分配内存,应加大内存容量。
如果%IDle值持续低于10,表明cpu处理能力相对较低,系统中最需要解决的资源是cpu。
工作机制
当应用程序需要读取文件中的数据时, *** 作系统先分配一些内存,将数据从存储设备读入到这些内存中,然后再将数据分发给应用程序;当需要往文件中写数据时, *** 作系统先分配内存接收用户数据,然后再将数据从内存写到磁盘上。
对于每个文件的第一个读请求,系统读入所请求的页面并读入紧随其后的少数几个页面(不少于一个页面,通常是三个页面),这时的预读称为同步预读。
如果应用程序接下来是顺序读取的话,那么文件 cache 命中,OS 会加大同步预读的范围,增强缓存效率,此时的预读被称为异步预读
如果接下来 cache 没命中,那么 OS 会继续使用同步预读。
因此基本思路就是:
尽量避免磁盘的随机IO,尽量利用磁盘预读缓存,利用局部性原理
尽可能地顺序读写一个文件
单进程读写硬盘
避免对大目录 *** 作
把小文件的读写转换为大文件的写
以上是内存溢出为你收集整理的[Linux] 磁盘IO性能查看和优化以及iostat命令全部内容,希望文章能够帮你解决[Linux] 磁盘IO性能查看和优化以及iostat命令所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)