首页 > 代码库 > 使用FIO对SATA、SSD和PCIe Flash进行测试

使用FIO对SATA、SSD和PCIe Flash进行测试

首先声明,同事做的实验
使用fio对SATA、SSD、PCIE进行了测试
测试说明:
1、测试命名   sync_write_4k_32
     sync表示测试方式,可以是sync或者libaio,sync就是发起IO请求等待IO完成后,此thread继续发起IO请求,实现并发采用fio发起多线程实现;libaio,异步IO,thread发起IO请求后,IO请求进行IO队列,此模式为了实现并发多测试,采用控制iodepth实现
    write:为测试IO请求方法,包括write、read、rw、randwrite、randread、randrw,分别为:顺序写、顺序读、顺序读写、随机写、随机读、随机读写,混合读写是,rw比率为1.5
    4k:测试数据块大小,测试了4k、8k、16k、32k、128k,16k为数据库数据块大小,图表采用16k
    32:并发数,32并发性能最高,图表采用32线程
2、PCIE裸设备测试,是执行写/dev/fda,其他未说明的,是写文件系统,比如/data/test,是SSD的目录下文件测试
3、PCIE写裸设备曾经导致PCIE异常(另邮件说明过)
测试结果:
 

顺序读写带宽MB/S
     顺序读写IOPS    
testnameSATASSDPCIEPCIE裸设备 testnameSATASSDPCIEPCIE裸设备
sync_write_16k_32485.755473.061613.8591225.1 sync_write_16k_3230359295663836678460
sync_read_16k_32981.42756.0292244.21939.1 sync_read_16k_326281047251143624124155
sync_rw_16k_32708.361690.881875.0361350.544 sync_rw_16k_3244271431795468884408
           
顺序读写延迟us          
testnameSATASSDPCIEPCIE裸设备      
sync_write_16k_321052.31080.39832.16298.58      
sync_read_16k_32508.7676.54222.06257.03      
sync_rw_16k_321078.82739.205583.695377.965      

技术分享

随机读写带宽MB/S     随机读写IOPS    
testnameSATASSDPCIEPCIE裸设备 testnameSATASSDPCIEPCIE裸设备
sync_randwrite_16k_327.39278.324337.51607.112 sync_randwrite_16k_3246248952109437944
sync_randread_16k_3220.004761.0492071.31957.9 sync_randread_16k_32125047565132558125303
sync_randrw_16k_3210.55358.271902.758811.373 sync_randrw_16k_32659223915642150710
           
随机读写延迟us          
testnameSATASSDPCIEPCIE裸设备      
sync_randwrite_16k_3236929.883748.15818.35841.71      
sync_randread_16k_3225584.52671.61238.27254.3      
sync_randrw_16k_3296364.745954.425297.875629.365      

技术分享

结论:顺序读写普通SATA盘和SSD差别不大,甚至SSD要低于SATA;随机读写上SSD明显高于SATA,尤其是随机读,这也是一般数据库系统的瓶颈所在;PCIe性能好的无解,而且现在成本也降得可以接受,是提高数据库性能的一个非常好的选择。

使用FIO对SATA、SSD和PCIe Flash进行测试