Evgeniy Lyachenko/iStock / Getty Images Plus
Ikuti ZDNET: Tambahkan kami sebagai sumber pilihan di Google.
**Intisari ZDNET**
Jika mesin Linux Anda lambat saat boot, coba gunakan alat ini.
Systemd-analyze menawarkan beberapa opsi untuk membantu.
Setiap mesin Linux yang mendukung systemd akan memilikinya.
Linux memiliki beragam alat yang berguna untuk mengungkap hal-hal yang berjalan lancar, bermasalah, dan segala hal di antaranya. Anda dapat menyesuaikannya sesuai keinginan atau membiarkannya sebagaimana adanya.
Suatu saat, Anda mungkin penasaran apa yang memperlambat waktu boot mesin Linux Anda. Meski terdengar rumit, Anda akan terkejut betapa mudahnya sebenarnya. Faktanya, Linux memiliki alat bawaan untuk membantu Anda melakukannya.
Baca juga: Cara memilih distribusi desktop Linux yang tepat untuk Anda
Jika distribusi Linux Anda menggunakan sistem init systemd, Anda sudah memiliki apa yang diperlukan untuk mengatasi masalah boot yang lambat. Saya akan menunjukkan cara menggunakan alat tersebut.
systemd-analyze
Alat yang dimaksud adalah bagian dari sistem init systemd, dan dinamakan systemd-analyze. Fungsinya adalah menganalisis dan mendebug manajer inisialisasi di Linux.
Jika Anda menjalankan perintah `systemd-analyze` saja, Anda akan melihat hasil yang kira-kira seperti ini:
Startup finished in 6.669s (kernel) + 30.368s (userspace) = 37.037s
graphical.target reached after 27.479s in userspace
Seperti terlihat di atas, total waktu startup salah satu mesin saya adalah 37,037 detik, dengan 6,669 detik untuk kernel dan 30,368 detik untuk aplikasi userspace. Lalu ada graphical.target (layar login) yang tercapai pada 27,479 detik.
Baca juga: 8 hal yang dapat dilakukan dengan Linux tetapi tidak dengan MacOS atau Windows
Itu informasi yang cukup baik, tetapi belum terlalu membantu. Kabar baiknya, ada beberapa opsi penting yang dapat kita gunakan untuk mencari tahu apa yang terjadi.
blame
Opsi pertama adalah `blame`, yang mencantumkan semua file unit systemd, menunjukkan waktu yang dibutuhkan setiap unit untuk menginisialisasi selama boot terakhir, dari yang terlama hingga terpendek. Opsi ini berguna untuk mengidentifikasi layanan mana yang menyebabkan penundaan saat startup.
Opsi `blame` digunakan seperti ini:
systemd-analyze blame
Hasilnya akan terlihat seperti ini:
57.158s apt-daily.service
20.879s apt-daily-upgrade.service
17.609s snapd.service
10.647s docker.service
7.217s snapd.seeded.service
4.772s fstrim.service
4.160s dev-sda2.device
3.824s motd-news.service
3.756s cloud-init-local.service
3.369s cloud-config.service
3.173s snap.lxd.activate.service
2.932s containerd.service
2.877s cloud-final.service
2.677s systemd-udev-settle.service
2.498s cloud-init.service
2.125s networkd-dispatcher.service
2.051s man-db.service
Seperti bisa dilihat, `apt-daily.service` adalah unit systemd yang memakan waktu paling lama. Unit apakah itu? Unit `apt-daily.service` bertanggung jawab untuk memeriksa pembaruan perangkat lunak secara otomatis setiap hari pada distribusi Linux berbasis Debian.
Baca juga: Alasan terpenting Anda harus menggunakan Linux di rumah
Meskipun Anda dapat menghentikan `apt-daily.service`, saya tidak merekomendasikannya. Anda bisa menelusuri daftar yang dihasilkan oleh `systemd-analyze blame` dan melihat apakah ada layanan yang dapat dinonaktifkan dengan aman dan andal untuk mempercepat waktu boot.
critical-chain
Opsi `critical-chain` menampilkan rantai unit yang secara kritis memperlambat proses boot. Opsi ini membantu menemukan kemacetan dalam rantai ketergantungan. Dalam outputnya, waktu ketika sebuah unit menjadi aktif dicetak setelah karakter `@`, dan waktu yang dibutuhkan unit untuk memulai dicetak setelah karakter `+`.
Output untuk `critical-chain` kira-kira seperti ini:
graphical.target @27.479s
└─multi-user.target @27.478s
└─docker.service @16.830s +10.647s
└─containerd.service @13.891s +2.932s
└─dbus.service @13.869s
└─basic.target @13.796s
└─sockets.target @13.794s
└─snapd.socket @13.745s +44ms
└─sysinit.target @13.659s
└─cloud-init.service @11.149s +2.498s
└─systemd-networkd-wait-online.service @10.024s +1.118s
└─systemd-networkd.service @9.838s +180ms
└─network-pre.target @9.832s
└─cloud-init-local.service @6.073s +3.756s
└─systemd-remount-fs.service @1.434s +174ms
└─systemd-journald.socket @1.147s
└─system.slice @1.067s
└─-.slice @1.067s
Seperti terlihat, dua layanan yang dapat menyebabkan kemacetan pada sistem ini (mesin Ubuntu Server) adalah `docker.service` dan `containerd.service`. Jika saya ingin mempercepat waktu boot, saya dapat menonaktifkan layanan tersebut saat boot dan menjalankannya secara manual nanti.
plot
Terakhir, ada opsi `plot`, yang menghasilkan file .svg (Scalable Vector Graphic) yang merepresentasikan proses boot dan ketergantungan terkait secara visual. Setelah file dihasilkan, Anda dapat membukanya di peramban web atau penampil gambar yang mendukung file SVG.
Perintahnya terlihat seperti ini:
systemd-analyze plot > boot.svg
Anda kemudian akan menemukan file .svg di direktori kerja saat ini. Saya sarankan membuka file tersebut di peramban web karena kebanyakan peramban mendukung format ini, dan gambarnya bisa cukup besar.
File gambarnya bisa sangat besar.
Jack Wallen/ZDNET
Baca juga: Cara menjalankan aplikasi Windows di Linux dengan Wine
Seperti yang terlihat pada contoh saya, di sekitar detik ke-18 adalah saat mayoritas aplikasi dan layanan mulai diinisialisasi.
Alat systemd-analyze sangat berguna untuk dimiliki. Dengannya, Anda dapat mulai memecahkan masalah yang menyebabkan sistem Anda boot lebih lambat dari yang diharapkan.