Encryption 密码设置基准值不现实
我目前正在评估我的笔记本电脑和工作站上的AES加密和解密速度 执行时Encryption 密码设置基准值不现实,encryption,aes,benchmarking,Encryption,Aes,Benchmarking,我目前正在评估我的笔记本电脑和工作站上的AES加密和解密速度 执行时 cryptsetup benchmark -c aes --key-size 128 在没有AESNI扩展的情况下,我获得了接近200MB/s的正常结果。 当我加载扩展时 modprobe aesni-intel 执行同样的基准测试,我得到了完全不切实际的结果 例如,解密时为68021MB/s 有什么建议导致这些不切实际的结果的问题是什么 顺便说一句:笔记本电脑上的操作系统是Ubuntu,工作站是Gentoo 卸载的预定义
cryptsetup benchmark -c aes --key-size 128
在没有AESNI扩展的情况下,我获得了接近200MB/s的正常结果。
当我加载扩展时
modprobe aesni-intel
执行同样的基准测试,我得到了完全不切实际的结果
例如,解密时为68021MB/s
有什么建议导致这些不切实际的结果的问题是什么
顺便说一句:笔记本电脑上的操作系统是Ubuntu,工作站是Gentoo
卸载的预定义ubuntu包
从源代码安装
与
make脚本只执行一次测试,结果很好
但是当我通过
make install
我再次得到这些奇怪的结果不切实际的基准测试结果通常是由错误的(如完全无效的)基准测试方法造成的 从它们的特性来看,基准测试核心是(在可怕的伪代码中)
totalTime=0
totalSize=0
同时(总时间<1000){
(sampleTime,sampleSize)=processSingleSample
totalTime+=采样时间
totalSize+=样本大小
}
速度=总大小/总时间
假设processSingleSample
的执行时间接近于零——每次迭代都会稳步增加totalSize
,但在某些迭代中,总时间根本不会增加。最后,totalTime
是1000,而totalSize
是任意大的,因此得到的“速度”是任意大的
当每个单独的迭代花费大量时间时,这种基准测试方法仍然有用,但在这种特殊情况下(特别是在启用
aesni
后,它会进一步减少每个单独迭代的时间),它不是正确的方法。thsi似乎是合理的,但是,在同一个系统和另一个操作系统中,结果如何会存在这样的差异呢?当我安装gentoo时,我的笔记本电脑得到了更现实的结果。他们应该看看OpenSSL。它只是尝试运行10秒左右,然后查看运行了多长时间以及处理了多少次迭代。当然,如果您生成4096位RSA密钥,这是一个问题,但在大多数情况下应该可以。实际上,您可以使用openssl-speed
测试AES(-NI)性能。
make install
totalTime = 0
totalSize = 0
while ( totalTime < 1000 ) {
(sampleTime, sampleSize) = processSingleSample
totalTime += sampleTime
totalSize += sampleSize
}
speed = totalSize / totalTime