[dm-crypt] aes-xts-plain with aes_x86_64 makes my SSD 5x slower than my encrypted HD

Marc MERLIN marc at merlins.org
Tue Jul 24 17:38:06 CEST 2012


On Tue, Jul 24, 2012 at 04:58:17PM +0200, Heinz Diehl wrote:
> On 24.07.2012, Heinz Diehl wrote: 
> 
> [....]
> 
> And that's obviously not all. The problem occurs also with _unencrypted_
> partitions/devices, here's the proof (/dev/sda1 is a 500M ext2
> partition mounted on /boot; using the same Hitachi rotational drive as
> in my previous test):
> 
> [root at wildsau /]# blockdev --setra 8192 /dev/sda1
> [root at wildsau /]# hdparm -t /dev/sda1
> Timing buffered disk reads: 236 MB in  3.00 seconds =  78.57 MB/sec
 
Funny you'd say that. I checked mine (with 3.4.4)

By default, it comes with:
gandalfthegreat:~# blockdev --report /dev/sda2
RO    RA   SSZ   BSZ   StartSec            Size   Device
rw   256   512  4096     502272     26843283456   /dev/sda2

gandalfthegreat:~# blockdev --setra 0 /dev/sda2
gandalfthegreat:~# hdparm -t /dev/sda2
/dev/sda2:
 Timing buffered disk reads:   2 MB in  4.81 seconds = 425.77 kB/sec

gandalfthegreat:~# hdparm --direct -t /dev/sda2
/dev/sda2:
 Timing O_DIRECT disk reads: 432 MB in  3.01 seconds = 143.68 MB/sec
 
So I know it doens't make sense, but apparently it's SSD/machine sensitive
and for me the default of 256 is enough for the block device, but not enough 
for a dm-crypt'ed device. 

I just checked that my other dmcrypt device I just created:
gandalfthegreat:~# blockdev --report /dev/mapper/test 
RO    RA   SSZ   BSZ   StartSec            Size   Device
rw   256   512  4096          0     26839089152   /dev/mapper/test

So I do get 256 RA consistently and it's enough for the raw block device,
but not enough for a dm-crypted device.

gandalfthegreat:~# hdparm -t /dev/mapper/test 
/dev/mapper/test:
 Timing buffered disk reads:  66 MB in  3.05 seconds =  21.62 MB/sec

By the way, just for run, I tried 
cryptsetup luksFormat --align-payload=8192 -c twofish-xts-plain64 /dev/sda2
instead of
cryptsetup luksFormat --align-payload=8192 -c aes-xts-plain  /dev/sda2
since it was suggested that it might be faster on recent laptops.

Well, on a Lenovo 530 with 
model name	: Intel(R) Core(TM) i7-3520M CPU @ 2.90GHz
I get 177 MB/s for twofish-xts-plain64 and 281 MB/s for aes-xts-plain
For comparison, I got 406 MB/s for null dmcrypt.

So it sounds like for my SSD, aes-xts-plain is the fastest with aesni_intel
once I've run blockdev --settra 8192.

I tried --settra 81920 (10x more) and it raised aes-xts-plain from 281MB/s
to 298MB/s and null dmcrypt 406MB/s to 446MB/s.

Hope this helps.

Marc
-- 
"A mouse is a device used to point at the xterm you want to type in" - A.S.R.
Microsoft is to operating systems ....
                                      .... what McDonalds is to gourmet cooking
Home page: http://marc.merlins.org/  


More information about the dm-crypt mailing list