Sistem File EXT4 + TRIM:
- EXT4 dengan TRIM meningkatkan kinerja dengan mengurangi siklus tulis yang tidak perlu ke drive SSD karena membatasi siklus tulis ulang.
- Ubuntu dan beberapa versi Linux lainnya mendukung EXT 4 dengan TRIM langsung.
SWAP Partisi:
- Pastikan Anda tidak memiliki ruang SWAP di SSD, sekali lagi untuk mengurangi siklus tulis.
- Jika Anda memiliki drive mekanis, Anda harus membuat ruang SWAP di drive mekanis, dan menghindarinya di SSD.
Perataan Partisi:
- Partisi harus dimulai pada batas bersih 1MB sehingga ukuran blok Sistem File sejajar dengan ukuran blok SSD.
Jadi gunakan EXT4 + TRIM dengan SWAP di hard drive mekanis atau tanpa SWAP di SSD.
Hal di atas dapat diterapkan dengan merujuk ke Sumber:Cara Memaksimalkan Performa SSD.
Jawaban singkat
-
Pilih ext4 , dan pasang dengan
discard
opsi untuk dukungan TRIM, atau gunakan FITRIM (Lihat di bawah). Gunakan juganoatime
pilihan jika Anda takut "keausan SSD". -
Jangan ubah penjadwal I/O default (CFQ) di server multi-aplikasi , karena memberikan keadilan antar proses dan memiliki dukungan SSD otomatis. Namun, gunakan Batas Waktu di desktop untuk mendapatkan respons yang lebih baik di bawah beban.
-
Untuk menjamin penyelarasan data yang benar dengan mudah, sektor awal setiap partisi harus kelipatan 2048 (=1 MiB). Anda dapat menggunakan
fdisk -cu /dev/sdX
untuk membuat mereka. Pada distribusi terbaru, secara otomatis akan mengurus ini untuk Anda. -
Pikirkan dua kali sebelum menggunakan swap pada SSD. Ini mungkin akan jauh lebih cepat dibandingkan dengan menukar pada HDD, tetapi ini juga akan membuat disk lebih cepat aus (yang mungkin tidak relevan, lihat di bawah).
Jawaban panjang
- Sistem File:
Ext4 adalah sistem file Linux yang paling umum (terpelihara dengan baik). Ini memberikan kinerja yang baik dengan SSD dan mendukung TRIM (dan FITRIM) untuk menjaga kinerja SSD yang baik dari waktu ke waktu (ini menghapus blok memori yang tidak terpakai untuk akses tulis cepat nanti). NILFS dirancang khusus untuk drive memori flash, tetapi kinerjanya tidak lebih baik dari ext4 pada tolok ukur. Btrfs masih dianggap eksperimental (dan juga tidak benar-benar berkinerja lebih baik).
- Performa SSD &TRIM:
TRIM fitur menghapus blok SSD yang tidak digunakan lagi oleh sistem file. Ini akan mengoptimalkan kinerja penulisan jangka panjang dan direkomendasikan pada SSD karena desainnya. Ini berarti sistem file harus dapat memberi tahu drive tentang blok tersebut. discard
pasang opsi ext4 akan mengeluarkan TRIM tersebut perintah ketika blok sistem file dibebaskan. Ini adalah pembuangan online .
Namun, perilaku ini menyiratkan sedikit overhead kinerja. Sejak Linux 2.6.37, Anda dapat menghindari penggunaan discard
dan memilih untuk sesekali melakukan pembuangan massal dengan FITRIM sebagai gantinya (misalnya dari crontab). fstrim
utilitas melakukan ini (online), serta -E discard
pilihan fsck.ext4
. Namun, Anda memerlukan versi "terbaru" dari alat ini.
- Keausan SSD:
Anda mungkin ingin membatasi penulisan pada drive Anda karena SSD memiliki masa pakai yang terbatas dalam hal ini. Namun, jangan terlalu khawatir , SSD 128 GB terburuk saat ini dapat mendukung setidaknya 20 GB data tertulis per hari selama lebih dari 5 tahun (1000 siklus tulis per sel). Yang lebih baik (dan juga yang lebih besar) dapat bertahan lebih lama:kemungkinan besar Anda sudah menggantinya saat itu.
Jika Anda ingin menggunakan tukar pada SSD, kernel akan melihat disk non-rotasi dan akan mengacak penggunaan swap (perataan keausan level kernel):Anda kemudian akan melihat SS
(Solid State) dalam pesan kernel saat swap diaktifkan:
Menambahkan 2097148k swap pada /dev/sda1. Prioritas:-1 luasan:1across:2097148k SS
- Penjadwal I/O:
Juga, saya setuju dengan sebagian besar aliasgar jawaban saya (walaupun sebagian besar telah -secara ilegal?- disalin dari situs web ini), tetapi saya sebagian harus tidak setuju dengan penjadwal bagian. Secara default, penjadwal tenggat adalah dioptimalkan untuk disk rotasi karena mengimplementasikan algoritma lift. Jadi, mari kita perjelas bagian ini.
Jawaban panjang tentang penjadwal
Mulai dari kernel 2.6.29, disk SSD terdeteksi secara otomatis, dan Anda dapat memverifikasi ini dengan:
cat /sys/block/sda/queue/rotational
Anda harus mendapatkan 1
untuk hard disk dan 0
untuk SSD.
Sekarang, penjadwal CFQ dapat menyesuaikan perilakunya berdasarkan informasi ini. Sejak linux 3.1, dokumentasi kernel cfq-iosched.txt
file mengatakan:
CFQ memiliki beberapa pengoptimalan untuk SSD dan jika mendeteksi media non-rotasi yang dapat mendukung kedalaman antrean yang lebih tinggi (beberapa permintaan dalam penerbangan sekaligus), [...].
Selain itu, penjadwal Batas Waktu mencoba membatasi pergerakan kepala yang tidak berurutan pada disk rotasi, berdasarkan nomor sektor. Mengutip kernel doc deadline-iosched.txt
, fifo_batch
deskripsi opsi:
Permintaan dikelompokkan ke dalam ``batch'' arah data tertentu (baca atau tulis) yang dilayani dalam urutan sektor yang meningkat.
Namun, menyetel parameter ini ke 1 saat menggunakan SSD mungkin menarik:
Parameter ini menyetel keseimbangan antara latensi per permintaan dan throughput agregat. Ketika latensi rendah menjadi perhatian utama, lebih kecil lebih baik (di mana nilai 1 menghasilkan perilaku pertama datang pertama dilayani). Meningkatkan fifo_batch umumnya meningkatkan throughput, dengan mengorbankan variasi latensi.
Beberapa tolok ukur menunjukkan bahwa ada sedikit perbedaan kinerja antara penjadwal yang berbeda. Lalu, mengapa tidak merekomendasikan keadilan ? ketika CFQ jarang buruk di bangku cadangan . Namun, pada penyiapan desktop, Anda biasanya akan mengalami responsif yang lebih baik menggunakan Tenggat di bawah beban, karena desainnya (mungkin dengan biaya throughput yang lebih rendah).
Meskipun demikian, tolok ukur yang lebih baik akan mencoba menggunakan Batas waktu dengan fifo_batch=1
.
Untuk menggunakan Deadline pada SSD secara default, Anda dapat membuat file, misalnya /etc/udev.d/99-ssd.rules
sebagai berikut:
# all non-rotational block devices use 'deadline' scheduler
# mostly useful for SSDs on desktops systems
SUBSYSTEM=="block", ATTR{queue/rotational}=="0", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/scheduler}="deadline"
Artikel archlinux Solid State Drive mengatakan di bagian Pilihan Sistem File :
Ada banyak opsi untuk sistem file termasuk Ext2/3/4, Btrfs, dll.
Btrfs
Dukungan Btrf telah disertakan dengan rilis utama 2.6.29 dari kernel Linux. Beberapa merasa bahwa itu tidak cukup matang untuk penggunaan produksi sementara ada juga pengadopsi awal penerus potensial ini ke ext4. Pengguna didorong untuk membaca artikel Btrfs untuk info lebih lanjut.Ext4
Ext4 adalah sistem file lain yang mendukung SSD. Itu dianggap stabil sejak 2.6.28 dan cukup matang untuk penggunaan sehari-hari. Berbeda dengan Btrfs, ext4 tidak secara otomatis mendeteksi sifat disk; pengguna harus secara eksplisit mengaktifkan dukungan perintah TRIM menggunakan opsi buang pemasangan di fstab (atau dengan tune2fs -o buang /dev/sdaX).
Baik Btrfs dan Ext4 memenuhi dua persyaratan utama untuk penggunaan SSD yang efisien :
- Sistem file harus dapat mengeluarkan perintah ATA_TRIM ke SSD yang mendasarinya
- Sistem file tidak boleh melakukan penulisan yang tidak diperlukan ke disk
Untuk kinerja, ada dua persyaratan lain :
- Partisi harus disesuaikan dengan ukuran blok SSD
- TRIM harus diaktifkan secara eksplisit untuk setiap partisi berformat Ext4
Yang pertama saat ini otomatis dengan sebagian besar penginstal Linux.fdisk juga akan membuat partisi pada batas 1024KB jika dimulai dengan flag "-cu".
Yang kedua otomatis untuk Btrfs, tetapi untuk Ext4 ini dilakukan secara manual dengan menambahkan "buang" ke daftar opsi pemasangan untuk setiap partisi Ext4 di file "/etc/fstab".
Menurut pendapat saya, ini membutuhkan sedikit mengutak-atik fstab untuk Ext4is bukan alasan untuk tidak menggunakan sistem file yang matang dan luar biasa ini.