Booting Linux Terasa Lambat? Temukan Bottleneck Layanan dan Optimalkan dalam 3 Menit Menggunakan systemd-analyze

Gambaran Umum

Jika proses booting server atau PC Linux Anda membutuhkan waktu lebih lama dari biasanya, Anda perlu mengidentifikasi penyebabnya untuk mengurangi keterlambatan yang tidak perlu. Dengan menggunakan perintah systemd-analyze, Anda dapat dengan mudah mengukur total waktu booting, melacak layanan sistem yang menyebabkan bottleneck, hingga memverifikasi file unit. Artikel ini membahas perintah analisis utama dan teknik optimasi performa yang dapat langsung diterapkan dalam praktik kerja.

1. Memeriksa Waktu Booting dan Mengukur Keterlambatan per Segmen (time & blame)

Perintah systemd-analyze mengukur dan menampilkan total waktu yang dihabiskan selama proses booting, beserta waktu inisialisasi kernel dan ruang pengguna (userspace).
Berdasarkan hasil eksekusi, terlihat bahwa sistem membutuhkan total waktu 315ms untuk menyelesaikan booting dan mencapai lingkungan GUI graphical.target.
⚙️ [Opsi Utama]

time : Menampilkan total waktu yang dihabiskan pada kernel dan ruang pengguna saat booting (perilaku default).
blame : Menampilkan daftar layanan yang menyebabkan keterlambatan booting selama proses inisialisasi dalam urutan waktu menurun (terlama ke tercepat).
critical-chain : Menampilkan pohon dependensi layanan dari jalur kritis (time-critical chain) yang menyebabkan keterlambatan booting.
plot : Menghasilkan timeline eksekusi per layanan untuk seluruh proses booting dalam bentuk file grafis SVG.
dot : Menghasilkan hubungan dependensi antar layanan dalam format Graphviz dot.

systemd-analyze

Perintah systemd-analyze blame | head -n 10 menampilkan 10 layanan teratas yang membutuhkan waktu inisialisasi paling lama saat booting, diurutkan secara menurun.
Dari hasil eksekusi, terlihat bahwa systemd-resolved.service (68ms) dan ldconfig.service (67ms) menghabiskan waktu paling banyak selama proses inisialisasi booting.

systemd-analyze blame | head -n 10

2. Melacak Jalur Kritis Penyebab Keterlambatan Booting (critical-chain)

Perintah systemd-analyze critical-chain menampilkan pohon dependensi (jalur kritis) dari layanan-layanan yang secara langsung memengaruhi penyelesaian proses booting sistem.
Tanda @ pada output menunjukkan waktu saat unit diaktifkan atau dimulai, sedangkan tanda + menunjukkan waktu yang dihabiskan untuk eksekusi unit itu sendiri.
Melihat pohon hasil, dapat dipastikan bahwa hingga mencapai graphical.target (315ms), layanan seperti systemd-resolved.service (68ms) dan systemd-journald.service (39ms) terhubung secara serial dan membentuk jalur bottleneck utama yang memicu keterlambatan booting secara keseluruhan.

systemd-analyze critical-chain

Perintah systemd-analyze critical-chain networking.service melacak rantai kritis secara selektif hingga layanan tertentu (dalam contoh ini networking.service) dimulai.
Perintah ini sangat berguna ketika Anda ingin mengisolasi dan menganalisis dependensi bottleneck dari layanan jaringan atau backend tertentu, alih-alih seluruh jalur sistem.

systemd-analyze critical-chain networking.service

3. Menghasilkan Laporan SVG Visualisasi Timeline Booting (plot)

Untuk menyimpan dan mengelola file laporan analisis booting secara terstruktur, jalankan perintah mkdir -p ~/systemd-reports untuk membuat direktori khusus.

mkdir -p ~/systemd-reports

Perintah systemd-analyze plot > ~/systemd-reports/boot-analysis.svg membuat dan menyimpan file grafis SVG berupa timeline visual yang menunjukkan waktu mulai dan durasi eksekusi setiap layanan selama proses booting.
Anda dapat memeriksa alur eksekusi paralel dan segmen keterlambatan antar layanan secara intuitif melalui grafik chart yang sulit dipahami hanya dari log teks saja.

systemd-analyze plot > ~/systemd-reports/boot-analysis.svg

Perintah ls -lh ~/systemd-reports/boot-analysis.svg memeriksa keberadaan file laporan SVG yang telah dibuat beserta detail informasinya seperti ukuran file (59KB).
File SVG yang dihasilkan dapat dibuka melalui peramban web atau penampil gambar untuk menganalisis bagan timeline booting secara visual dan terperinci.

ls -lh ~/systemd-reports/boot-analysis.svg

4. Memverifikasi Kesalahan Konfigurasi Unit Layanan dan Status Keamanan (verify & security)

Perintah sudo systemd-analyze verify /lib/systemd/system/ssh.service memverifikasi kesalahan sintaksis atau konfigurasi yang terlewat pada file unit yang ditentukan terlebih dahulu.
Jika tidak ada pesan yang muncul pada hasil eksekusi, ini menandakan bahwa file unit layanan tersebut tidak memiliki cacat sintaksis atau kesalahan konfigurasi.

sudo systemd-analyze verify /lib/systemd/system/ssh.service

Perintah systemd-analyze security ssh.service mendiagnosis konfigurasi isolasi keamanan dan tingkat keterpaparan sistem (Security Exposure) dari unit layanan yang ditentukan.
Melalui hasil eksekusi, Anda dapat memeriksa status penerapan item keamanan penting secara rinci beserta skor paparan risikonya, seperti eksekusi hak akses root (User=), kontrol akses perangkat (PrivateDevices=), dan pencegahan eskalasi hak akses (NoNewPrivileges=).

systemd-analyze security ssh.service

Sejauh ini, kita telah melihat cara mengidentifikasi layanan bottleneck yang menyebabkan keterlambatan booting dan mengoptimalkannya menggunakan perintah systemd-analyze.
Bersihkan layanan yang tidak diperlukan untuk menciptakan lingkungan booting Linux yang jauh lebih responsif dan cepat.