Cryptsetup Benchmark值不切实际

时间:2014-06-30 11:59:36

标签: encryption aes benchmarking

我目前正在评估笔记本电脑和工作站上的AES加密和解密速度。

执行时

cryptsetup benchmark -c aes --key-size 128

如果没有AESNI扩展,我的结果几乎达到200MB / s。 当我用

加载扩展名时
modprobe aesni-intel

并执行相同的基准测试我得到了完全不切实际的结果

例如解密时为68021MB / s

任何建议可能导致这些不切实际的结果的问题?

BTW:笔记本电脑上的操作系统是Ubuntu,Workstation是Gentoo

卸载预定义的ubuntu软件包 从源头安装 与

make check

make脚本执行单个测试,这些结果很好 但是当我通过

安装它
make install

我再次得到这些奇怪的结果

1 个答案:

答案 0 :(得分:1)

不切实际的基准测试结果通常是由错误(完全无效)的基准测试方法引起的。

从他们的benchmark source判断,基准核心是(可怕的伪代码)

totalTime = 0
totalSize = 0
while ( totalTime < 1000 ) {
    (sampleTime, sampleSize) = processSingleSample
    totalTime += sampleTime
    totalSize += sampleSize
}
speed = totalSize / totalTime 

想象一下当processSingleSample的执行时间接近零时的情况 - 每次迭代稳定地增加totalSize但在某些迭代中总时间根本不会增加。最后,totalTime为1000,totalSize为任意大,因此产生的速度为#34}。是任意大的。

当每个单独的迭代占用大量时间时,这种基准测试方法仍然有用,但在这种特殊情况下(特别是在启用aesni后,每次迭代的时间会减少更多),它就不是对了。