Perangkat lama datang dalam dua profil storage yang menuntut perlakuan berlawanan. Profil pertama: HDD berkapasitas besar yang lambat — seek mekanisnya membuat I/O kecil yang acak terasa seperti kemacetan. Profil kedua: SSD kecil yang cepat tetapi sempit — ruangnya mudah penuh dan sel-selnya perlu dijaga agar tidak cepat aus. Kabar baiknya, keduanya bisa diperbaiki dari sisi software: pilihan scheduler I/O, opsi mount yang mengurangi tulisan, TRIM berkala, dan kebersihan ruang. Chapter ini menyusun strategi per profil, membedah fstab opsi demi opsi, lalu melatih skrip penghitung penghematan ruang.
Dua Profil, Dua Strategi #
Tabel berikut merangkum keputusan utama berdasarkan profil storage — kolom “keduanya” adalah opsi yang aman dan bermanfaat di dua-duanya:
| Opsi | Untuk HDD lama | Untuk SSD kecil | Efek utama |
|---|---|---|---|
Scheduler bfq | ya — prioritas interaktif | tidak perlu | update besar tak lagi membekukan tampilan |
noatime | ya | ya | tulisan metadata per pembacaan file hilang |
commit=60 | ya | ya | flush journal ext4 lebih jarang |
tmpfs untuk /tmp | ya bila RAM longgar | ya | file sementara tidak menyentuh disk |
TRIM berkala (fstrim.timer) | tidak relevan | wajib | blok kosong diinformasikan ke SSD |
Kompresi zstd di btrfs | opsional | cocok | kapasitas efektif bertambah |
Scheduler I/O untuk HDD: bfq #
Scheduler bawaan kernel seperti mq-deadline mengoptimalkan throughput, tetapi di desktop tua throughput bukan masalahnya — responsivitas adalah: satu proses apt upgrade yang menulis ribuan file kecil membuat klik mouse terasa menggantung. Scheduler bfq (Budget Fair Queue) mengangkat tiap proses sebagai entitas yang diberi jatah waktu I/O, sehingga interaksi pengguna tetap mendapat porsi walau copy besar berjalan. Scheduler aktif dapat diperiksa dengan cat /sys/block/sda/queue/scheduler dan diganti sementara dengan echo bfq | sudo tee /sys/block/sda/queue/scheduler. Cara permanennya adalah udev rule yang menyasar disk berputar, misalnya ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="bfq" — mekanisme udev dan pembacaan atributnya dibedah di Chapter I/O Scheduling
.
TRIM untuk SSD Kecil #
SSD tidak bisa menimpa sel yang masih berisi data — sel harus dihapus dulu — sehingga sistem file yang tidak pernah memberi tahu blok mana yang kosong memaksa SSD menghapus-nulis berulang (write amplification). Perintah TRIM menyampaikan informasi itu: sudo fstrim -av menjalankannya sekali untuk semua filesystem yang mendukung, dan fstrim.timer milik systemd menjalankannya otomatis setiap minggu — periksa dengan systemctl status fstrim.timer lalu aktifkan dengan sudo systemctl enable --now fstrim.timer. Perilaku perintahnya dirinci di fstrim(8)
.
Opsi Mount noatime di fstab #
Setiap pembacaan file secara bawaan mengundang satu tulisan kecil: kernel memperbarui access time (atime) file tersebut. Pada HDD tua, tulisan metadata sekecil apa pun berarti seek; pada SSD, tulisan berarti siklus aus. Opsi noatime mematikan pembaharuan atime — penghematan nyaris tanpa risiko. Kita bedah penggunaannya lewat fixture fstab:
cat > fstab <<'AKHIR'
# <perangkat> <titik-mount> <tipe> <opsi> <dump> <fsck>
UUID=aaa1-1111 / ext4 defaults,noatime 0 1
UUID=bbb2-2222 /home ext4 defaults,noatime,commit=60 0 2
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
AKHIR
awk '$1 !~ /^#/ && NF >= 6 {
printf "%-15s %-6s %-5s opsi: %s\n", $1, $2, $3, $4
}' fstabOutput yang Dihasilkan:
UUID=aaa1-1111 / ext4 opsi: defaults,noatime
UUID=bbb2-2222 /home ext4 opsi: defaults,noatime,commit=60
tmpfs /tmp tmpfs opsi: defaults,noatime,mode=1777Tiga baris sistem file yang aktif tercetak rapi. Bedah opsinya satu per satu:
- Baris 3 (
defaults,noatime):defaultsmemuat opsi standar (rw, exec, auto, dsb.) dannoatimeditambahkan di belakangnya — bentuk paling aman karena tidak mengubah perilaku lain. - Baris 4 (
commit=60): journal ext4 secara bawaan di-flush setiap 5 detik;commit=60melonggarkannya menjadi 60 detik sehingga HDD/SSD menerima tulisan besar yang lebih jarang. Taruhannya jujur: crash dalam 60 detik terakhir bisa kehilangan data sejak flush terakhir. - Baris 5 (
tmpfs ... mode=1777):/tmpdipindah ke RAM — file sementara tidak pernah menyentuh disk dan bersih sendiri saat reboot; angka1777adalah izin tulis-untuk-semua plus sticky bit sebagaimana lazimnya/tmp. Syaratnya satu: RAM harus longgar, karenatmpfsmengambil dari RAM yang sudah sempit. - Kolom terakhir (
0 1dan0 2): urutan pemeriksaanfscksaat boot — root diperiksa pertama,/homekedua, dantmpfstidak perlu diperiksa. Struktur enam kolomfstabdirinci di fstab(5) dan daftar opsi lengkapnya di mount(8) .
Filesystem dan Kompresi #
Untuk perangkat lama, ext4 tetap pilihan paling aman: matang, diperiksa bertahun-tahun, dan didukung semua alat penyelamatan. Pilihan menarik lainnya adalah btrfs dengan kompresi transparan zstd — file disimpan dalam keadaan terkompresi sehingga SSD 64 GiB mampu memuat isi yang setara puluhan gigabyte lebih banyak, dengan beban CPU yang ringan. Konsekuensinya juga jujur: btrfs memakai copy-on-write dan butuh kebiasaan pemeliharaan berbeda (misalnya memantau penggunaan chunk). Untuk sebagian besar pemula di mesin tua, ext4 plus noatime sudah mengantar 90 persen hasil; pertimbangan pemilihan filesystem secara menyeluruh kita bahas di Chapter Filesystems dan Formatting
.
Menemukan dan Membersihkan Penyumbat #
Optimasi kecepatan baru setengah pekerjaan; SSD kecil juga haus ruang. Penyumbat dicari dengan du — tekniknya dibahas tuntas di Chapter Disk Monitoring
— lalu kandidat pembersihan dihitung sebelum dieksekusi. Berikut latihan menghitungnya dari daftar temuan:
cat > pembersihan.txt <<'AKHIR'
# penyumbat ukuran-mib
cache-apt 480
log-journal 220
kernel-lama 340
unduhan-lama 1500
AKHIR
awk '$1 !~ /^#/ {
printf "%-15s %6d MiB\n", $1, $2
total += $2
}
END {
printf "%-15s %6d MiB\n", "TOTAL", total
}' pembersihan.txtOutput yang Dihasilkan:
cache-apt 480 MiB
log-journal 220 MiB
kernel-lama 340 MiB
unduhan-lama 1500 MiB
TOTAL 2540 MiBBedah singkat: pola $1 !~ /^#/ pada baris 9 melewati baris komentar fixture, akumulator total menjumlah kolom kedua tiap baris data (baris 11), dan blok END mencetak total dengan format kolom yang sama sehingga sejajar (baris 13–15). Empat penyumbak itu juga punya obat standar: sudo apt clean mengosongkan cache paket, sudo journalctl --vacuum-size=100M memangkas log systemd, sudo apt autoremove --purge menghapus kernel lama yang menumpuk, dan folder unduhan tinggal dipindah ke drive eksternal — mekanisme lengkap manajemen paketnya ada di Chapter apt dan dpkg
. Total 2540 MiB pada SSD 64 GiB berarti 4 persen ruang kembali tanpa membeli apa pun.
Storage kini jujur pada perangkatnya — scheduler adil di HDD, tulisan berkurang, ruang bersih. Satu komponen perangkat lama yang belum kita sentuh adalah baterai laptop — dan di sanalah Chapter Manajemen Daya Laptop berikut mengambil alih.