В моем ноутбуке (Samsung 840 Pro) установлен интерфейс SSD 128 ГБ. Этот ноутбук также имеет процессор Intel i5 3210m Ivy Bridge и 8 ГБ оперативной памяти.
Я установил Ubuntu 12.10, используя графический установщик, чтобы получить полное шифрование диска. Я отчасти разочарован, потому что я ожидал, что спецификации должны дать лучшие результаты, чем то, что я получаю.
Глядя на эту страницу тестирования производительности SSD, он утверждает, что мой процессор может делать:
- ~ 500 МБ / с: с AES-NI
- ~ 200 МБ / с: без AES-NI
Глядя на числа, которые я получаю, я думаю, что у меня может быть не включен AES-NI. Но сначала ...
Чтение незашифрованных данных происходит быстро:
# 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
Это на самом деле близко к характеристикам моего SSD «до 530 МБ / с», и выполнение dd
теста дает результаты, аналогичные приведенным выше.
Запись зашифрованных данных также выполняется быстро с помощью dm-crypt (в противном случае с eCryptfs производительность записи является ужасной, ниже 100 МБ / с), числа близки к спецификации SSD (я думаю, что запись буферизуется или что-то в этом роде):
# 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
Однако чтение зашифрованных данных - это еще одна история:
# 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
Во время написания этого сообщения мне действительно повезло получить 183 МБ / с, потому что это число варьируется. Обычно это где-то около 150 МБ / с, но при новой загрузке я также приблизился к 300 МБ / с, но затем производительность постепенно падает до 200 МБ / с без запуска каких-либо приложений. Обратите внимание, что при проведении этого теста у меня нет других процессов, которые делают ввод / вывод (как видно с iotop
).
Кроме того, вот тест, hdparm
который дает худшие результаты:
# 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
Я также попытался htop
провести эксперимент, посмотрев ... не уверен, как интерпретировать то, что видел, поскольку процессор i5 выполняет Hyper-Threading, но в 2 потоках из 4, где во время теста используется примерно 73%, в то время как другие 2 темы, где остались неиспользованными. Действительно, если я запускаю 2 процесса, которые читают dd
из 2 разных файлов (чтобы предотвратить буферизацию), то iotop
в общей сложности выдается около 400 МБ / с. Так что это определенно похоже на то, что оно связано с процессором
Мое разочарование связано с тем, что мой процессор i5 способен на AES-NI . Незашифрованные данные читаются со скоростью более 500 МБ / с, используя те же тесты, которые я делал выше. Итак, мы говорим о том, что зашифрованный раздел работает как минимум в 3 раза медленнее.
Я действительно не знаю, использует ли моя установка dm-crypt AES-NI. Вот вывод lsmod
:
# lsmod | grep aes
aesni_intel 51038 35
cryptd 20404 10 ghash_clmulni_intel,aesni_intel
aes_x86_64 17256 1 aesni_intel
Вот вывод 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
Итак, это ожидается? Разве AES-NI не должен улучшать вещи больше, чем это?
Кроме того, как отключить AES-NI, чтобы увидеть, есть ли разница? И, возможно, мне стоит как-то включить его, но я не нашел никаких подсказок в своих поисках.
Спасибо,
источник