【问题描述】
WUH721816AL(西数16T SATA盘)硬盘,在关闭写缓存的情况下,使用fio测试256K 1m顺序写时存在性能低的问题(实测数据约80mb/s在客户标准测试满足200MB/s通过)
【原因分析】
机械盘对单个fio下发多job测试性能没有offset_increment=int参数时不合理,因为单个fio下发多个job任务顺序写时,两个任务都是从初始地址开始写,这样会出现覆盖写导致实际写入速度降低;同时固件也会根据缓存里的数据情况进行优化,比如放弃之前的写入命令,直接执行最后一次,这样可以提高效率,但大块数据会导致缓存里的写入命令比较少,就会可能发生重复写入,降低了效率,从而出现当数据块越大,性能出现跌落的情况,小数据块也会收到影响,只是影响不大,并且这和各家的固件算法不同;(cache是disable的情况盘会转让PWC模式,会有2M大小的缓存,保证突然断电数据丢失)
测试数据:
a、不带offset_increment=int参数测试
bs大小 |
西数16T顺序写性能MB/s |
64k |
255 |
128k |
260 |
256k |
92 |
512k |
95 |
1024k |
89 |
b、带offset_increment=100GB参数测试
bs大小 |
西数16T顺序写性能MB/s |
256k |
204 |
512k |
260 |
1024k |
260 |
【解决方案】
合理的使用单个fio测试多job的顺序写性能,要保证这些job不能同时写入相同的地址,所以需要加上-offset_increment=100GB参数,使得每个job写的地址不同,这样实际的性能就是真实性能
标签:increment,WUH721816AL,写入,job,测试,offset,fio,硬盘 From: https://www.cnblogs.com/HByang/p/18489755