本文翻译自vdbench的使用手册中的数据校验章节,如有纰漏,还请不吝赐教。
vdbench源码下载地址:https://www.oracle.com/downloads/server-storage/vdbench-source-downloads.html
数据校验在性能测试的时候不应该被使用,处理器开销可能影响性能测试的结果。
在我开始之前,我想问一个想了很多次的问题:“为什么我使用vdbench去检查数据冲突?我也可以写一个大文件,计算校验和,然后重新读这个文件并比较校验和。”当然,你可以这样做,但是这种方法真的足够好吗?你正在做的一切都是在检查数据在顺序传输时的冲突问题。但是对于随机IO怎么办呢?检查不是也很重要吗?如果你对同一个block写了X次,然后你发现内容是正确的。难道这不意味着你可能丢了X-1次连续写入而没有注意到?你花了24小时去写,然后重新读一个某个块已经是坏了的大文件?这个块什么时候被写?什么时候再次被读?是的,你可以高兴的说:我用了一个周末的时间去计算出了错误的校验和。这样说可能更有用:“我在某个block发现了某个错误,我也知道这个错误什么时候被写入,什么时候被发现的”。这个错误的块也可能来自错误的磁盘。