1 .检查磁盘I/o性能1.1 top命令top命令通过查看CPU的wa%值来确定当前磁盘I/o性能。 如果此值太大,磁盘I/o很可能过高。 当然,也可以考虑其他原因,如网络I/o过高。
1.2 sar命令sar命令是分析系统瓶颈的神器,可以看到CPU、存储器、磁盘、网络等的性能。
sar命令显示当前磁盘性能的命令包括:
sar -d -p 1 2
其中,“-d”参数意味着显示磁盘性能,“-p”参数意味着以sda、sdb……的名称显示dev设备,“1”意味着每隔1s取一次数值,“2”
await每个设备I/O操作的平均等待时间(毫秒)。
svctm :每次设备I/O操作的平均服务时间(毫秒)。
%util秒中有多少%的时间用于I/O操作?
关于磁盘I/o性能,一般有以下评估标准:
svctm通常应该小于等待值,但svctm的大小与磁盘性能有关,CPU、内存负载也影响svctm值,过多的请求会间接导致svctm值的增加。
await的值的大小一般取决于svctm的值、I/O队列的长度和I/O请求模式。 svctm值接近await时,几乎没有I/O等待,表示磁盘性能良好。 如果await的值远远高于svctm的值,则表示I/O队列等待太久,系统上运行的APP应用程序将变慢。 在这种情况下,更换会更快
%util条目的值也是衡量磁盘I/O的重要指标。 如果%util接近100%,则磁盘的I/O请求过多,I/O系统可能已完全运行,磁盘可能存在瓶颈。 长期来看,您可以通过影响系统性能并优化程序或更换更快的磁盘来解决此问题。
默认情况下,sar从最近的0点0分开始显示数据; 如果想继续看一天前的报告; 可以显示/var/log/sa/中保存的sar日志:
sar-d-p-f/var/log/sa/sa11|more 1.3 iostat命令iostat主要用于监视系统设备的io负载情况。 第一次运行iostat时将显示系统启动后的各项统计信息,然后运行iostat时将显示自上次运行以来的统计信息。 用户可以通过指定统计的次数和时间来获得所需的统计信息。
iostat -dxk 1 2
此命令的结果与上面的sar -d -p12命令类似,但在实际使用中主要查看awaitsvctm%util参数。
2 .测试磁盘IO性能2.1 hdparm命令hdparm命令提供命令行界面,用于读取和设置IDE或SCSI硬盘参数。 请注意命令只能测试磁盘的读取速率。
例如,测试sda磁盘的读取速度。
hdparm -Tt /dev/sda1
linux首先安装hdparm服务。 结果表明,带缓存的读取速度为9955MB/s,磁盘的实际读取速度为567MB/s
2.2 fio命令fio命令是专门测试iops的命令,比dd命令准确,fio命令参数多。 举几个例子供参考:
依次阅读:
fio-filename=/var/test.file-direct=1- io depth1- thread-rw=read-ioengine=p sync-bs=16k-size=2g -。
fio-filename=/var/test.file-direct=1- io depth1- thread-rw=rand write-ioengine=p sync-bs=16k-size=
fio-filename=/var/test.file-direct=1- io depth1- thread-rw=write-ioengine=p sync-bs=16k-size=2g -。
fio-filename=/var/test.file-direct=1- io depth1- thread-rw=rand rw-rwmixread=70-ioengine=p sync-bs=