Jawaban:
Ada banyak saran, tetapi sangat sedikit hasil empiris untuk efisiensi penggunaan enkripsi.
Saya menemukan satu studi seperti itu : Pembandingan Linux SSD: Membandingkan sistem file dan metode enkripsi . Pada tabel di bawah, ukurannya nyata / pengguna / sistem dan hasil terbaik berwarna hijau sedangkan yang terburuk diwarnai merah:
Klik untuk gambar yang lebih besar
Berdasarkan hasil ini, penulis telah memutuskan untuk menggunakan dm-crypt dalam mode aes-xts-plain dengan 128 bit keylength dan btrfs dengan ssd alignment dan
compress=lzo
.
Artikel lain yang bermanfaat adalah Dampak Kinerja Enkripsi Disk Linux Di Ubuntu 14.04 LTS . Ia mempelajari penggunaan CPU selama instalasi pada tiga konfigurasi opsi pemasangan stok (tanpa enkripsi disk), metode enkripsi disk penuh menggunakan LUKS pada LVM dan enkripsi direktori home berbasis eCryptfs. Hasilnya dirangkum dalam grafik di bawah ini, dan kesimpulannya adalah bahwa instalasi tanpa enkripsi rata-rata 26%, sedangkan LUKS pada LVM dan enkripsi eCryptfs keduanya rata-rata sekitar 30 ~ 31%, sehingga keduanya hampir setara dalam kinerja.
Klik untuk gambar yang lebih besar
Artikel yang tidak memiliki hasil empiris tetapi banyak saran bagus adalah LinuX, SSD, dan enkripsi disk . Saya sarankan membaca artikel ini, dan berikut ini adalah saran utama yang diberikan:
noatime
dan nodiratime
untuk menekan pembukuan waktu akses untuk file dan direktori.Saya melakukan beberapa pengujian dengan sistem low-to-middle end. Hasil di bawah ini.
Kesimpulannya, tampaknya enkripsi tidak membuat optimisasi sistem file tidak berguna. Seperti yang dapat Anda lihat di tabel, untuk dmcrypt / LUKS (AES256), sistem F2FS
file lebih cepat daripada EXT4
di hampir semua skenario di mana ia lebih cepat secara default (tanpa enkripsi, yaitu). Agak mengherankan, itu juga memberikan manfaat nyata dalam kasus di mana ia tidak akan tanpa enkripsi - yaitu, Bonnie++ Sequential Output (Per char)
dan Flexible I/O Tester Sequential Read
tes.
Untuk skenario yang sama ini juga lebih lambat dalam dua tes (Sequential Write - Bonnie ++ dan FIO), tetapi tidak jauh lebih lambat. Jarak tempuh Anda mungkin beragam.
Saya tidak menguji EXT4 dengan AES-128bits karena waktu yang terbatas karena itu tidak penting untuk jawaban ini.
Catatan: Saya mengamati penyimpangan yang sangat besar dan aneh dalam pengujian dengan AES-128bits. Hingga 15% variasi dalam sebagian besar tes, dan bahkan 37% (!) Dalam satu kasus. Tidak yakin kenapa. Saya tidak menggunakan sistem untuk hal lain selama tes berlangsung. Sistem (root) itu sendiri dienkripsi dengan AES-256, jadi saya bisa memikirkan penjelasan hipotetis yang melibatkan jaringan pipa CPU / opcache, tapi ... Benar-benar belum tahu. (Ini juga terjadi ketika pengujian dari CD langsung, tanpa pernah membuka kunci partisi AES-256bit, jadi itu bukan alasannya).
Penyimpangan disimpan di bawah 3,6% (1,4% khas) di tempat lain. Saya mengadopsi margin kesalahan 4%. Dengan demikian, perbedaan yang lebih kecil dari 4% harus diabaikan untuk hasil ini.
Pengaturan tes:
SSD: Kingston SV300S37A/120G
Mainboard: ASUS Sabertooth 990FX R2.0
CPU: AMD FX-6350 @ stock
Kernel version: 4.11.3
IO Scheduler: CFQ
All tests were run using an 80GB secondary partition.
Tabel hasil dalam format ASCII (perbedaan yang dianggap "tidak relevan" dihilangkan):
|+===================================+|
|| % Change ||
|+=====================+=====================+=================+| ||--------+--------+--------+--------||
|| (no encryption) | AES-256 | AES-128 || || F2FS / EXT4 |Crypto / NoCrypto||
|+============+========================+----------+----------+----------+----------+------+----------||=========||--------+--------+--------+--------+|
|| Test suite | Test Method | EXT4 | F2FS | EXT4 | F2FS | EXT4 | F2FS || Unit ||nocrypto| aes256 | aes128 | aes256 ||
|+------------+------------------------+----------+----------+----------+----------+------+----------++---------++--------+--------+--------+--------+|
|| Manual | Read | 390.6 | 391.59 | 320 | 325.6 | - | 345.36 || MiB/s || | | -11.81 | -16.85 ||
||(cp and dd) | Write (zeros) | 501.96 | 517.17 | 96.9 | 96.7 | | 112.16 || MiB/s || | | -78.31 | -81.30 ||
|| | Write (random data) | 100.44 | 97.99 | 91.8 | 89.5 | | 97.64 || MiB/s || | | | -08.66 ||
||--------------------------------------------------------------------------------------------------------------||--------|--------|--------|--------||
|| | Seq. Output – Per char | 80.68 | 83.76 | 63.56 | 80.59 | - | 75.56 || MiB/s || | +26.79 | -09.79 | ||
|| | Seq. Output – Block | 498.92 | 492.42 | 104.74 | 101.13 | | 90.9 || MiB/s || | | -81.54 | -79.46 ||
|| Bonnie++ | Seq. Output – Rewrite | 196.4 | 198.99 | 74.69 | 70.8 | | 70.27 || MiB/s || | -05.21 | -64.69 | -64.42 ||
|| | Seq. Input - Per char | 86.93 | 86.04 | 84.01 | 81.25 | | 87.84 || MiB/s || | | | -05.57 ||
|| | Seq. Input – Block | 352.57 | 355.99 | 286.36 | 289.24 | | 304.5 || MiB/s || | | -14.46 | -18.75 ||
|| | Random seeks | 9452.9 | 9102.2 | 8142.3 | 8224.8 | | 7431.4 || ops/s || | | -18.36 | -09.64 ||
||--------------------------------------------------------------------------------------------------------------||--------|--------|--------|--------||
|| Fs-mark | 1000 files, 1 thread | 193.7 | 236.6 | 93.6 | 103.7 | - | 73.9 || files/s || +18.13 | +10.79 | -68.77 | -56.17 ||
|| | 5000 files, 4 threads | 310.1 | 348.8 | 90.9 | 99 | | 91.6 || files/s || +11.10 | +08.91 | -73.74 | -71.62 ||
||--------------------------------------------------------------------------------------------------------------||--------|--------|--------|--------||
|| | Random read | 56.77 | 69.86 | 58.79 | 63.51 | | 61.93 || MiB/s || | | | ||
|| | | 14188 | 17461 | 14695 | 15874 | | 15479 || IOPS || +23.07 | +08.02 | -11.35 | -09.09 ||
|| Flexible | | | | | | - | || || | | | ||
|| I/O | Random write | 59.91 | 78.99 | 52.2 | 63.75 | | 67.75 || MiB/s || | | | ||
|| Tester | | 14973 | 19745 | 13046 | 15935 | | 16934 || IOPS || +31.87 | +22.14 | -14.24 | -19.30 ||
|| | | | | | | | || || | | | ||
|| | Sequential read | 284.02 | 247.57 | 95.14 | 95.17 | | 95.98 || MiB/s || | | | ||
|| | | 71001 | 61889 | 23781 | 23788 | | 23991 || IOPS || -12.83 | | -61.24 | -61.56 ||
|| | | | | | | | || || | | | ||
|| | Sequential write | 94.06 | 100.77 | 100.63 | 96.56 | | 86.93 || MiB/s || | | | ||
|| | | 23512 | 25188 | 25153 | 24137 | | 21728 || IOPS || +07.13 | -04.04 | -13.74 | -04.17 ||
|+------------+------------------------+----------+----------+----------+----------+------+----------++---------++--------+--------+--------+--------+|
_