https://www.jianshu.com/p/a15d7a65c876
dd默认测试会使用buffer io,oflag=direct参数则会跳过buffer I/O,因此通常direct性能测试结果会低一些。
--从/home的4k写数据来看:
dd buffer io时数据为193/183,oflag=direct时数据为40/80来看,buffer I/O数据明显较高,但需要说明的是这不是真是的硬盘写性能,这是buffer的性能。
--从/home的1m写数据来看:
dd buffer io时数据为2.1G/2.1G,oflag=direct时数据为241/241,可看到同样的结论。
--一个疑问点:dd同样使用buffer io时,为什么4K的结果要远远小于1M的结果。
这点原因是因为IOPS的限制,buffer同样也会有iops的限制,可以计算下4K时,带宽190M,iops=48640/1M时,带宽2.1GB,iops=2150,也就是说buffer的iops上限在50000左右,带宽上限在2.1GB。
--从/dev/sdf的4k写数据来看:
仍旧可得出上述结论,4K(不带oflag=direct时),结果为buffer I/O的性能。
--从/dev/sdf的1m写数据来看:
4K(不带oflag=direct时),结果是200MB,跟/home下测试的2.1GB相差较大,
这部分的原因暂时不知,不过数据结果来看,测试的结果为硬盘的顺序写性能,而非buffer I/O的性能。
--从/home的4K数据来看:
当使用buffer I/O时,disk cache是否开启并无影响,因为读写测试的是buffer I/O性能。
当使用direct时,开启disk cache后,会对性能有一个较大的提升。
--从/home的1m数据来看:
当使用buffer I/O时,disk cache是否开启并无影响,因为读写测试的是buffer I/O性能。
当使用direct时,开启disk cache与否并无影响,因为1M的数据块决定了并不会使用diskcache。
--从/dev/sdf的4k数据来看:
当使用buffer I/O时,disk cache是否开启并无影响,因为读写测试的是buffer I/O性能。
当使用direct时,开启disk cache后,会对性能有一个较大的提升。
--从/dev/sdf的1m数据来看:
当使用buffer I/O时,disk cache是否开启并无影响,因为如上所述这块测试的是硬盘的顺序写性能,原因暂时不知。
当使用direct时,开启disk cache与否并无影响,因为1M的数据块决定了并不会使用diskcache。