Ho un SSD da 128 GB installato sul mio laptop (Samsung 840 Pro) su un'interfaccia Sata 3. Questo laptop ha anche un processore i5 3210m Ivy Bridge Intel e 8 GB di RAM.
Ho installato Ubuntu 12.10, usando il programma di installazione grafico per ottenere la crittografia dell'intero disco. Sono un po 'deluso, perché mi aspettavo le specifiche che dovevo ottenere risultati migliori di quello che ottengo.
Guardando questa pagina di benchmarking SSD afferma che il mio processore è in grado di fare:
- ~ 500 MB / s: con AES-NI
- ~ 200 MB / s: senza AES-NI
Guardando i numeri che ottengo, penso che potrei non avere AES-NI abilitato. Ma prima ...
La lettura di dati non crittografati è veloce:
# hdparm -Tt /dev/sda1
/dev/sda1:
Timing cached reads: 14814 MB in 2.00 seconds = 7411.70 MB/sec
Timing buffered disk reads: 242 MB in 0.48 seconds = 502.75 MB/sec
Questo è in realtà vicino alle specifiche del mio SSD di "fino a 530 MB / s" e fare un dd
test produce risultati simili a quelli sopra.
La scrittura di dati crittografati è veloce anche con dm-crypt (altrimenti con eCryptfs le prestazioni sulla scrittura sono spaventose, inferiori a 100 MB / s), i numeri sono vicini alle specifiche SSD (suppongo che la scrittura sia bufferizzata o qualcosa del genere):
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 2.93896 s, 365 MB/s
La lettura di dati crittografati è tuttavia un'altra storia:
# echo 3 > /proc/sys/vm/drop_caches
# dd if=tempfile of=/dev/null bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 5.85956 s, 183 MB/s
Durante la scrittura di questo messaggio, ho avuto la fortuna di ottenere 183 MB / s, poiché questo numero varia. Normalmente si trova a circa 150 MB / s, ma mi sono anche avvicinato a 300 MB / s con un nuovo avvio, ma le prestazioni scendono gradualmente a meno di 200 MB / s senza che io avvii alcuna app. Si noti che durante l'esecuzione di questo test non ho altri processi che eseguono I / O (come visto con iotop
).
Inoltre, ecco il test con il hdparm
quale si ottengono risultati peggiori:
# hdparm -Tt /dev/mapper/sda2_crypt
/dev/mapper/sda2_crypt:
Timing cached reads: 14816 MB in 2.00 seconds = 7412.86 MB/sec
Timing buffered disk reads: 422 MB in 3.01 seconds = 140.11 MB/sec
Ho anche provato l'esperimento guardando htop
... non sono sicuro di come interpretare ciò che ho visto, dal momento che il processore i5 esegue Hyper-Threading, ma 2 thread su 4 dove andavano a circa il 73% di utilizzo durante il test, mentre l'altro 2 thread lasciati inutilizzati. In effetti, se avvio 2 processi che leggono dd
da 2 file distinti (per impedire il buffering), quindi iotop
riporta un totale di circa 400 MB / s. Quindi questo sembra decisamente legato alla CPU.
La mia delusione deriva dal fatto che il mio processore i5 è in grado di AES-NI . I dati non crittografati vengono letti a oltre 500 MB / s utilizzando gli stessi test che ho fatto sopra. Quindi stiamo parlando di una partizione crittografata che è almeno 3 volte più lenta.
Non so davvero se la mia installazione di dm-crypt sta usando AES-NI. Ecco l'output di lsmod
:
# lsmod | grep aes
aesni_intel 51038 35
cryptd 20404 10 ghash_clmulni_intel,aesni_intel
aes_x86_64 17256 1 aesni_intel
Ecco l'output di cryptsetup
:
# cryptsetup status sda2_crypt
/dev/mapper/sda2_crypt is active and is in use.
type: LUKS1
cipher: aes-xts-plain64
keysize: 512 bits
device: /dev/sda2
offset: 4096 sectors
size: 249565184 sectors
mode: read/write
flags: discards
Quindi, è previsto? AES-NI non dovrebbe migliorare le cose più di questo?
Inoltre, come disabilitare AES-NI per vedere se c'è qualche differenza? E forse dovrei abilitarlo in qualche modo, ma non ho trovato alcun suggerimento nelle mie ricerche.
Grazie,