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:

OpsiUntuk HDD lamaUntuk SSD kecilEfek utama
Scheduler bfqya — prioritas interaktiftidak perluupdate besar tak lagi membekukan tampilan
noatimeyayatulisan metadata per pembacaan file hilang
commit=60yayaflush journal ext4 lebih jarang
tmpfs untuk /tmpya bila RAM longgaryafile sementara tidak menyentuh disk
TRIM berkala (fstrim.timer)tidak relevanwajibblok kosong diinformasikan ke SSD
Kompresi zstd di btrfsopsionalcocokkapasitas 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:

bash
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
}' fstab

Output yang Dihasilkan:

text
UUID=aaa1-1111  /      ext4  opsi: defaults,noatime
UUID=bbb2-2222  /home  ext4  opsi: defaults,noatime,commit=60
tmpfs           /tmp   tmpfs opsi: defaults,noatime,mode=1777

Tiga baris sistem file yang aktif tercetak rapi. Bedah opsinya satu per satu:

  1. Baris 3 (defaults,noatime): defaults memuat opsi standar (rw, exec, auto, dsb.) dan noatime ditambahkan di belakangnya — bentuk paling aman karena tidak mengubah perilaku lain.
  2. Baris 4 (commit=60): journal ext4 secara bawaan di-flush setiap 5 detik; commit=60 melonggarkannya 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.
  3. Baris 5 (tmpfs ... mode=1777): /tmp dipindah ke RAM — file sementara tidak pernah menyentuh disk dan bersih sendiri saat reboot; angka 1777 adalah izin tulis-untuk-semua plus sticky bit sebagaimana lazimnya /tmp. Syaratnya satu: RAM harus longgar, karena tmpfs mengambil dari RAM yang sudah sempit.
  4. Kolom terakhir (0 1 dan 0 2): urutan pemeriksaan fsck saat boot — root diperiksa pertama, /home kedua, dan tmpfs tidak perlu diperiksa. Struktur enam kolom fstab dirinci 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:

bash
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.txt

Output yang Dihasilkan:

text
cache-apt          480 MiB
log-journal        220 MiB
kernel-lama        340 MiB
unduhan-lama      1500 MiB
TOTAL             2540 MiB

Bedah 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.