Linux Ubuntu işletim sisteminizin açılmasının ne kadar zaman aldığını hiç merak ettiniz mi? Belki de tanıdığınız biri kendi sisteminin sizinkinden daha hızlı açıldığını iddia etmiştir ve siz de tam olarak ne kadar sürdüğünü merak ediyorsunuzdur.
Bu makalemde Linux işletim sisteminizin açılış süresini nelerin etkilediğini ve toplam süresini nasıl hesaplayacağınızı kısaca anlayacaksınız.
Ayrıca açılış süresini azaltmanın ve bilgisayarınızı hızlı ve duyarlı dönüştürmenin yollarını da göstereceğim.
systemd-analyze Kullanarak Linux Açılış Süresinin Kontrol Edilmesi
Systemd aracı çoğu Linux dağıtımında önceden yüklenmiş olarak gelen varsayılan bir servis yöneticisidir. Systemd-analyze komutunu kullanarak sisteminizin önceki açılışıyla ilgili ayrıntılı istatistikler alabilirsiniz.
Ayrıca hizmetlerin bir dökümünü görebilir ve açılış sırasında her birinin ne kadar zaman aldığını öğrenebilirsiniz.
systemd-analyze kullanarak önyükleme süresini kontrol etmek için aşağıdaki komutu çalıştırınız.
systemd-analyze
Bu komut çıktısında sistem toplam açılış süresini içeren bir çıktı görüntüleyecektir. Ayrıca çekirdek ve kullanıcı alanı tarafından harcanan zamanı ayrı ayrı gösterecektir.
Startup finished in 4min 8.145s (kernel) + 40.344s (userspace) = 4min 48.490s
graphical.target reached after 39.293s in userspace
Bu komut çıktısında, makinenin açılmasının yaklaşık 5 dakika sürdüğünü görebilirsiniz.
Önyükleme (Boot) sırasında her bir servis tarafından harcanan zaman hakkında bilgi almak için systemd-analyze blame yöntemini kullanınız:
systemd-analyze blame
Bu komut aşağıdakine benzer bir çıktı üretecektir. Gördüğünüz gibi bu komutun çıktısı işletim sistemi üzerinde çalışan bütün servislerin bir listesini ve her birinin aldığı süreyi de gösterir.
root@haproxy:/home/sysadmin# systemd-analyze blame
17.038s snap.lxd.activate.service
15.715s snapd.service
13.827s systemd-networkd-wait-online.service
4.084s dev-mapper-ubuntu\x2d\x2dvg\x2dubuntu\x2d\x2dlv.device
1.838s cloud-init-local.service
1.649s cloud-config.service
1.381s systemd-udev-trigger.service
1.093s cloud-final.service
1.047s networkd-dispatcher.service
1.041s cloud-init.service
970ms systemd-journald.service
958ms snapd.apparmor.service
867ms udisks2.service
765ms multipathd.service
612ms dev-loop0.device
587ms dev-loop2.device
572ms dev-loop1.device
550ms ModemManager.service
501ms ua-timer.service
495ms keyboard-setup.service
493ms e2scrub_reap.service
467ms systemd-journal-flush.service
456ms systemd-logind.service
437ms systemd-udevd.service
433ms apport.service
431ms polkit.service
417ms ssh.service
394ms snapd.seeded.service
337ms modprobe@efi_pstore.service
328ms grub-common.service
313ms apparmor.service
309ms modprobe@ramoops.service
277ms user@1000.service
245ms systemd-timesyncd.service
241ms systemd-rfkill.service
233ms rsyslog.service
210ms dev-hugepages.mount
207ms sys-kernel-debug.mount
207ms modprobe@pstore_blk.service
206ms dev-mqueue.mount
205ms modprobe@pstore_zone.service
204ms sys-kernel-tracing.mount
201ms modprobe@fuse.service
192ms modprobe@chromeos_pstore.service
192ms modprobe@configfs.service
187ms kmod-static-nodes.service
184ms lvm2-monitor.service
180ms modprobe@drm.service
179ms systemd-resolved.service
173ms systemd-remount-fs.service
144ms systemd-modules-load.service
131ms lvm2-pvscan@8:3.service
113ms systemd-sysctl.service
110ms systemd-sysusers.service
systemd-analyze critical-chain
root@haproxy:/home/sysadmin# systemd-analyze critical-chain
The time when unit became active or started is printed after the "@" character.
The time the unit took to start is printed after the "+" character.
graphical.target @40.250s
└─multi-user.target @40.249s
└─snapd.seeded.service @38.166s +394ms
└─snapd.service @22.424s +15.715s
└─basic.target @22.343s
└─sockets.target @22.342s
└─snapd.socket @22.331s +9ms
└─sysinit.target @22.274s
└─cloud-init.service @21.228s +1.041s
└─systemd-networkd-wait-online.service @7.383s +13.827s
└─systemd-networkd.service @7.261s +100ms
└─network-pre.target @7.246s
└─cloud-init-local.service @5.405s +1.838s
└─open-vm-tools.service @5.391s
└─vgauth.service @5.376s
└─apparmor.service @5.039s +313ms
└─local-fs.target @5.020s
└─run-snapd-ns-lxd.mnt.mount @37.549s
└─run-snapd-ns.mount @34.864s
└─local-fs-pre.target @1.974s
└─multipathd.service @1.207s +765ms
└─systemd-remount-fs.service @988ms +173ms
└─systemd-journald.socket @771ms
└─-.mount @689ms
└─-.slice @689ms
root@haproxy:/home/sysadmin#
Linux Açılış Süresini Ne Etkiler
Linux sisteminizi başlattığınızda, BIOS ilk yüklenen adımdır. BIOS daha sonra kontrolü MBR’ye aktaracaktır. bu da GRUB önyükleyicisini başlatır.
GRUB çekirdeğin yüklenmesinden sorumludur, bu da ilk kök (root) dosya sistemini kurar ve init işlemini yürütür.
Bu işlemin de ardından diğer servislerin başlatılmasını gerçekleşir.
Bu diğer servisler tarafından harcanan zaman, sisteminizin açılış süresinin en büyük payını oluşturacaktır.
Başlangıç sırasında ne kadar çok servisiniz varsa, sisteminizin açılması da o kadar uzun sürecektir. işte bu ndenden dolayı da sisteminizin daha hızlı açılmasını istiyorsanız, başlangıç sırasında gereksiz servislerin çalışmasını durdurmak önemlidir.
Yavaş Açılan Bir Linux İşletim Sistemini Nasıl Onarılır
Sisteminizin açılış sıralamasında sorunlara neden olacağından, init işleminin veya GRUB önyükleyicisinin açılış sırasında başlamasını durduramazsınız. –> Ancak, sisteminizdeki önemsiz servislerini devre dışı bırakabilirsiniz böylece başlangıç sırasında çalışmazlar. Systemctl yardımcı programı Linux üzerindeki servislerin yönetmeninden sorumludur. Bu aracı kullanarak servisleri kolayca başlatabilir ve durdurabilirsiniz.
Yukarıdaki komutun çıktısında, snap.lxd.activate.service açılış süresinde en yüksek payı aldığını görebilirsiniz (yaklaşık olarak 18 saniye). Bu servis bir sistem için önemli bir hizmet olmadığından, açılış sırasında biraz zaman kazanmak için systemctl kullanarak devre dışı bırakabiliriz.
Bu işlem için aşağıdaki komutu kullanabilirisiniz.
sudo systemctl disable snap.lxd.activate.service
bu bölümde açıkcası ne yaptığınızdan tam olarak emin olmanız gerekir, herhangi bir servisi devre dışı bırakmadan önce mutlaka bu servisi araştırmak ve test bir sistemde denemek gerekecektir. Kritik bir servisin devre dışı bırakılması işletim sisteminde beklenmedik sorunlara neden olabilir. Yaptığınız bu işlemden sonra bir sorın olması durumunda bu servisi tekrar etkinleştirmek için systemctl komutunda disable yerine enable yazmanız yeterli olacaktır.
sudo systemctl enable snap.lxd.activate.service