Perangkat lama tidak rusak secara acak — polanya bisa dipelajari. Debu bertahun menutup heatsink, RAM kecil bertemu web yang makin rakus, disk penuh pelan-pelan oleh update, dan WiFi adapter era 2010 kehilangan dukungan driver. Bab penutup section ini merangkum lima masalah paling khas ke dalam tabel gejala, membedah satu gejala paling membingungkan (swap thrashing), melatih diagnosa bertahap dari pemeriksaan termurah, dan ditutup pertanyaan paling jujur dari semuanya: kapan sebaiknya berhenti memperbaiki.

Lima Masalah Khas dan Tabelnya #

Lima keluhan berikut mencakup sebagian besar kunjungan “perangkat lama sakit”. Tabel ini adalah peta cepatnya — penjelasan tiap baris menyusul di bagian bawah:

GejalaPenyebab paling mungkinTindakan pertama
Mati mendadak saat panas, kipas berisikdebu menutup heatsink, thermal paste kering, fan sekaratbersihkan, ukur dengan sensors
Lampu disk menyala terus, mouse patah-patahswap thrashing — RAM kewalahankurangi aplikasi, aktifkan zram
Update gagal, notifikasi disk penuhlog, cache, dan kernel lama menumpukbersihkan sesuai Chapter Optimasi Storage
WiFi sering putus atau tak mau nyambakdriver/firmware usangperiksa dmesg, pertimbangkan adapter USB
Bodi melengkung, touchpad miringbaterai menggembunghentikan pemakaian, ganti baterai

Bedah Gejala: Swap Thrashing #

Satu gejala pantas dibedah khusus karena sering disalahartikan sebagai “komputernya mau mati”. Skenarionya: RAM penuh, jadi kernel memindahkan halaman ke swap (di HDD); tetapi aplikasi yang sedang jalan juga butuh halamannya kembali, maka halaman itu ditarik balik — lalu ditukar keluar lagi, ditarik balik lagi, berulang tanpa akhir. Siklus inilah swap thrashing: disk bekerja terus-menerus (lampunya menyala tanpa jeda), sementara CPU justru nyaris nganggur karena semua orang antre di disk. Gejalanya khas dan mudah dikenali: sistem masih hidup tetapi membeku bergelombang — mouse melompat patah-patah, klik baru terasa beberapa detik kemudian, musik berhenti berulang. Bandingkan dengan CPU yang benar-benar kewalahan: di sana disk sepi, lag merata, dan load average tinggi — cara membacanya dibahas di Chapter Performance Bottlenecks .

Dugaan thrashing dikonfirmasi dengan satu perintah: vmstat 1 menampilkan kolom si dan so — swap-in dan swap-out dalam satuan halaman per detik. Kedua angka yang terus bergerak jauh di atas nol pada mesin yang sedang terasa beku adalah sidik jarinya. Karena output vmstat asli berubah setiap detik, kita melatih pembacaannya pada fixture statis:

bash
cat > vmstat-laptop.txt <<'AKHIR'
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 2  1    988    120    260    410  640  610    50   720  180  420  6  3 40 51
AKHIR

awk '$1 ~ /^[0-9]+$/ {
  printf "si (swap-in) : %d halaman/detik\n", $7
  printf "so (swap-out): %d halaman/detik\n", $8
  if ($7 > 100 || $8 > 100) print "=> kemungkinan thrashing: halaman lalu-lalang setiap detik"
  else print "=> lalu lintas swap masih wajar"
}' vmstat-laptop.txt

Output yang Dihasilkan:

text
si (swap-in) : 640 halaman/detik
so (swap-out): 610 halaman/detik
=> kemungkinan thrashing: halaman lalu-lalang setiap detik

Bedah potongan awk di atas:

  1. Baris 7 ($1 ~ /^[0-9]+$/): header vmstat ternyata dua baris dan keduanya diawali huruf, jadi pola “kolom pertama angka murni” hanya meloloskan baris data — idiom yang sama dengan latihan top di Chapter CPU Monitoring .
  2. Baris 8–9 ($7 dan $8): pada baris data vmstat, kolom ketujuh dan kedelapan adalah si dan so; keduanya dijadikan satu-satunya fokus karena itulah pertanyaannya — bukan seluruh tabel.
  3. Baris 10–11 (uji ambang): bila salah satu arah melewati 100 halaman per detik, lalu lintas halaman dinyatakan tidak wajar; ambang sengaja kasar agar alarm berbunyi lebih dulu, analisis menyusul.
  4. Kolom ujung fixture (id 40 wa 51): setengah waktu core menganggur menunggu I/O — persis wajah thrashing yang dibedah di atas, bukan CPU yang kurang kuat.

Obat thrashing sendiri sudah kita siapkan di Chapter Optimasi RAM : kurangi pemakaian, atau beri kernel “swap” murah berupa zram.

Diagnosa Bertahap: Dari yang Termurah #

Urutan pemeriksaan mengikuti prinsip yang sama dengan Chapter Troubleshooting Performance : mulai dari yang termurah dan paling informatif.

  1. Suhu. sensors dari paket lm-sensors membaca sensor termal. Berikut contoh tampilannya pada laptop yang heatsink-nya tersumbat debu:
text
acpitz-acpi-0
Adapter: ACPI interface
temp1:  +84.0°C

coretemp-isa-0000
Adapter: ISA adapter
Core 0:  +82.0°C  (high = +105.0°C, crit = +105.0°C)
Core 1:  +80.0°C  (high = +105.0°C, crit = +105.0°C)

Angka 84°C saat komputer nyaris idle jelas tidak normal — ambang high dan crit ikut tercetak sehingga maknanya langsung terbaca. Panas berlebih pada mesin tua hampir selalu berarti debu, thermal paste yang mengering, atau kipas yang sekarat; ketiganya adalah pekerjaan fisik, bukan software.

  1. Memori. free -m seperti Chapter Mengukur Penggunaan Resource : swap yang terus penuh menegaskan baris kedua tabel di atas.
  2. Ruang disk. df -h: partisi yang menyerempet 100 persen membuat update gagal dan sistem berperilaku aneh.
  3. Driver. dmesg | grep -iE 'firmware|error|fail' menelusurikan kegagalan memuat firmware — pola umum untuk WiFi tua. Sintaks lengkap dmesg ada di dmesg(1) dan free di free(1) .

Skrip Mini: Diagnosis dari Metrik #

Langkah-langkah di atas bisa dirangkum menjadi keputusan otomatis: baca sekumpulan metrik, cocokkan dengan ambang, keluarkan temuannya. Kita latih pada dua fixture — laptop yang sehat dan laptop yang bermasalah:

bash
cat > diagnosis-lama.sh <<'SKRIP'
#!/bin/bash
# diagnosis-lama.sh <file-metrik>
ambil() { awk -v kunci="$1" '$1 == kunci { print $2 }' "$2"; }

suhu=$(ambil suhu_cpu "$1")
fan=$(ambil fan_rpm "$1")
swapin=$(ambil swap_in_per_menit "$1")
disk=$(ambil disk_terpakai_persen "$1")
temu=0

if [ "$fan" -eq 0 ]; then
    echo "FAN MATI: kipas berhenti - hentikan pemakaian, periksa kipas"
    temu=1
elif [ "$suhu" -gt 80 ]; then
    echo "OVERHEAT: CPU $suhu C - bersihkan debu, ganti thermal paste"
    temu=1
fi

if [ "$swapin" -gt 2000 ]; then
    echo "SWAP THRASHING: $swapin halaman/menit - RAM kurang, kurangi aplikasi atau aktifkan zram"
    temu=1
fi

if [ "$disk" -gt 90 ]; then
    echo "DISK HAMIR PENUH: $disk% - bersihkan cache, log, dan kernel lama"
    temu=1
fi

if [ "$temu" -eq 0 ]; then
    echo "semua metrik dalam batas wajar"
fi
SKRIP

cat > metrik-laptop-baik.txt <<'AKHIR'
suhu_cpu 62
fan_rpm 2400
swap_in_per_menit 90
disk_terpakai_persen 63
AKHIR

cat > metrik-laptop-sakit.txt <<'AKHIR'
suhu_cpu 84
fan_rpm 0
swap_in_per_menit 5400
disk_terpakai_persen 96
AKHIR

bash diagnosis-lama.sh metrik-laptop-baik.txt
echo "---"
bash diagnosis-lama.sh metrik-laptop-sakit.txt

Output yang Dihasilkan:

text
semua metrik dalam batas wajar
---
FAN MATI: kipas berhenti - hentikan pemakaian, periksa kipas
SWAP THRASHING: 5400 halaman/menit - RAM kurang, kurangi aplikasi atau aktifkan zram
DISK HAMIR PENUH: 96% - bersihkan cache, log, dan kernel lama

Bedah skrip dan hasilnya:

  1. Baris 4 (ambil()): fungsi bantu mencari nilai sebuah kunci pada file metrik — awk mencocokkan field pertama dengan nama kunci lalu mencetak angkanya.
  2. Baris 12–18 (tangga if/elif): kipas mati diperiksa sebelum suhu tinggi — dan sengaja demikian: fan yang berhenti sudah menjelaskan suhu 84°C, jadi satu akar masalah cukup dilaporkan sekali.
  3. Baris 20–28 (tiga ambang): swap-in di atas 2000 halaman per menit ditetapkan sebagai tanda thrashing; disk di atas 90 persen sebagai tanda bahaya ruang. Ambang ini kasar tetapi berfungsi sebagai alarm dini.
  4. Baris 30–32 (if penutup): mesin sehat tidak mencetak apa pun selain satu baris “dalam batas wajar” — laporan pendek saat sehat, laporan lengkap saat bermasalah.
  5. Baris 49–51 (dua pemanggilan): kontras dua fixture membuktikan bahwa keputusan skrip bergeser mengikuti datanya; di mesin nyata, angka-angka itu didapat dari sensors, free, vmstat, dan df lalu disusun ke format kunci nilai.

Kapan Menyerah: Batas Ekonomis #

Bagian ini tidak populer, tetapi jujur. Dua perbaikan hampir selalu sepadan untuk laptop tua: SSD pengganti HDD dan penambahan RAM — keduanya murah relatif terhadap harga laptop pengganti, dan keduanya menyelesaikan dua kemacetan paling umum (seek mekanis dan tekanan memori) sekaligus. Di bawah itu, distro ringan plus semua optimasi section ini memang menghidupkan kembali perangkat — tetapi bila setelah semuanya CPU tetap kewalahan menampilkan web modern dan perbaikan berikutnya mulai mendekati harga perangkat baru, saatnya menghentikan investasi. Perangkat yang dipensiunkan belum selesai: mesin tua yang tak sanggup jadi desktop masih sangat layak jadi server rumah ringan dari Chapter Memilih Distro Ringan — tanpa layar, tanpa desktop, bekerja diam-diam di sudut rumah.

Pola-pola yang kita tangani di section ini — ukur dulu, pangkas yang tak perlu, setel sisanya, dan akui batasnya — adalah versi ringkas dari disiplin yang jauh lebih luas: membaca gejala sistem secara metodis. Keterampilan itu sudah kita latih sejak Chapter Uptime dan Load Average , dan referensi cepatnya terkumpul di Section Sumber Belajar untuk dipanggil kapan pun perangkat berikutnya mulai bersin.