私は組み込みソフトウェアに取り組んでおり、NFSイーサネット標準接続を介して暗号化されたディスクスペースを作成するためにcryptsetupを使用しました...このディスクが達成する書き込み速度を理解することに興味があります(簡単なパフォーマンス分析)。
まず、標準的なベンチマークを実行します
root@sbc-lynx:/mnt# cryptsetup benchmark
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1 33098 iterations per second for 256-bit key
PBKDF2-sha256 52851 iterations per second for 256-bit key
PBKDF2-sha512 34492 iterations per second for 256-bit key
PBKDF2-ripemd160 29789 iterations per second for 256-bit key
PBKDF2-whirlpool 7062 iterations per second for 256-bit key
# Algorithm | Key | Encryption | Decryption
aes-cbc 128b 26.7 MiB/s 24.5 MiB/s
serpent-cbc 128b 6.6 MiB/s 7.3 MiB/s
twofish-cbc 128b 10.2 MiB/s 11.0 MiB/s
aes-cbc 256b 21.4 MiB/s 20.8 MiB/s
serpent-cbc 256b 6.6 MiB/s 7.3 MiB/s
twofish-cbc 256b 10.2 MiB/s 10.2 MiB/s
aes-xts 256b 9.0 MiB/s 9.0 MiB/s
serpent-xts 256b 7.0 MiB/s 7.2 MiB/s
twofish-xts 256b 10.7 MiB/s 10.9 MiB/s
aes-xts 512b 7.1 MiB/s 7.0 MiB/s
serpent-xts 512b 7.0 MiB/s 7.1 MiB/s
twofish-xts 512b 10.7 MiB/s 10.9 MiB/s
テスト目的のためだけに、パフォーマンスが良さそうな eaes-cbc-256 を選択しました。
しかし、今度は実際の速度をテストしたいと思います。私の NFS は /mnt/ にマウントされており、暗号化されたフォルダーは /home/encryptroot/ に正しくマウントされています。私は以下を使用しました:
time dd bs=5M count=1 if=/dev/zero of=/mnt/ppx conv=fsync
1+0 records in
1+0 records out
real 0m0.556s
user 0m0.000s
sys 0m0.110s
time dd bs=5M count=1 if=/dev/zero of=/home/encryptroot/ppx conv=fsync
1+0 records in
1+0 records out
real 0m1.104s
user 0m0.000s
sys 0m0.180s
これらの結果から、通常のフォルダーでは約 9 MB/秒の速度が得られました
が、暗号化されたフォルダーでは 4 MB/秒が得られました。
質問 1) これは書き込み速度を評価する有効な方法ですか? パラメーター fsync を使用すると、実際にファイルをディスクにコピーするのにかかる時間 (キャッシュにコピーする時間ではない) を評価する必要がありますか?
この結果には満足していません。20 MB/秒の暗号化が可能でも、利用可能な合計帯域幅 (約 9 MB/秒) を満たすことができないからです。
最終調査:暗号を変更し、デフォルトのaes-xtsを使用しました。これにより、最大9MB/秒を達成できるはずです。繰り返します。
time dd bs=5M count=1 if=/dev/zero of=/home/encryptroot/ppx conv=fsync
1+0 records in
1+0 records out
real 0m2.281s
user 0m0.000s
sys 0m0.180s
書き込み速度は 2.2 MB/秒です。
質問 2) これらの結果を分析するために考慮する必要がある他の要因はありますか? xts のオーバーヘッドが非常に高く、スループットが低下している可能性がありますか? 他に推奨されるテストはありますか?
ありがとう