cryptsetup, LUKS, dm-crypt 벤치마크

cryptsetup, LUKS, dm-crypt 벤치마크

저는 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

이 결과에서 일반 폴더에서는 거의 9MB/s의 속도를 얻었지만
암호화된 폴더에서는 4MB/s를 얻었습니다.
질문1) 이것이 쓰기 속도를 평가하는 유효한 방법입니까? 매개변수 fsync를 사용하면 실제로 디스크에 파일을 복사하는 데(캐시에 복사하는 것이 아니라) 데 사용되는 시간을 평가해야 합니까?

나는 이 결과에 만족하지 않습니다. 왜냐하면 20MB/s의 암호화 가능성으로는 사용 가능한 총 대역폭(약 9MB/s)을 채울 수 없기 때문입니다.

최종 조사: 암호를 변경하고 최대 9MB/s를 달성해야 하는 기본 aes-xts를 사용했습니다. 반복했습니다.

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.2MB/s의 쓰기 속도를 얻습니다.
질문2) 이러한 결과를 분석하기 위해 내가 놓친 다른 요소를 고려해야 합니까? xts의 오버헤드가 너무 높아 처리량을 줄일 수 있습니까? 제안할 다른 테스트가 있나요?

감사해요

관련 정보