Jak długo trwa rozruch systemu Linux?


Po uruchomieniu system przechodzi przez sekwencję zdarzeń, zanim wyświetli ekran logowania. Czy kiedykolwiek sprawdziłeś, ile czasu zajmuje uruchomienie systemu? Generalnie wszystko to dzieje się w ciągu kilku sekund lub kilku minut, ale nie znamy dokładnego czasu. Czasami z pewnych powodów może być konieczne określenie dokładnego czasu rozruchu systemu. Bez względu na powód, dla którego chcesz to wiedzieć, istnieje narzędzie do analizy systemowej, które może podać dokładny czas rozruchu systemu Linux.

Chociaż możesz użyć zegara lub stopera, aby monitorować, kiedy system zaczyna się uruchamiać, ale nie jest to wykonalne w każdej sytuacji, szczególnie w przypadku serwerów z uruchomionymi serwerami, których z trudem można zrestartować. Na przykład, jeśli masz serwer z usługami krytycznymi i musisz znaleźć czas potrzebny na uruchomienie systemu. W takim przypadku musisz zrestartować serwer, co nie jest możliwe za każdym razem.

W tym artykule dowiesz się, jak długo system Linux uruchamia się, i jak skrócić ten czas, jeśli uruchamia się wolno.

Note :

  • Procedura omówiona w tym artykule została przetestowana na Ubuntu 20.04 LTS. Tę samą procedurę można wykonać w dowolnej dystrybucji Linuksa z włączoną opcją systemd.
  • Aby otworzyć terminal wiersza poleceń, użyj skrótu klawiaturowego Ctrl + Alt + T.

Co to jest analiza systemowa?

Systemd-analysis to narzędzie, którego można użyć do poznania statystyk ostatniego rozruchu systemu. Dzięki narzędziu systemd-analysis możesz znaleźć informacje o tym, ile czasu zajęło uruchomienie systemu, a także ile czasu zajęło uruchomienie każdej jednostki. Na szczęście nie musisz instalować tego narzędzia, ponieważ jest to wbudowane narzędzie systemd. Możesz to sprawdzić za pomocą następującego polecenia w Terminalu:

$ which systems-analyze

Na wyjściu zostanie wyświetlona pełna ścieżka do wykonywalnego polecenia.

Znajdowanie czasu potrzebnego do uruchomienia systemu

Aby znaleźć czas potrzebny na uruchomienie systemu, po prostu wpisz system-analysis bez żadnego argumentu wiersza poleceń w terminalu:

$ systemd-analyze

Po wykonaniu powyższego polecenie, narzędzie systemd-analysis oblicza czas potrzebny systemowi do zakończenia rozruchu, z podziałem na jądro i przestrzeń użytkownika.

Jak widać na powyższym zrzucie ekranu, całkowity czas rozruchu naszego systemu wynosi 32,378 s. sekund i jest podzielony na:

  • Kernel: 6.074s
  • Przestrzeń użytkownika: 26.304s

Zbadaj / Rozwiąż problemy z powolnym uruchamianiem

Jeśli czas rozruchu jest dłuższy, musisz dowiedzieć się, która usługa spowalnia proces rozruchu. Możesz go znaleźć za pomocą polecenia systemd-analysis blame . To polecenie wyświetla listę wszystkich uruchomionych usług, które zostały uruchomione podczas rozruchu, wraz z czasem ich wykonania. Dzięki tym informacjom możesz zoptymalizować czas uruchamiania systemu.

Wydaj następującą komendę w Terminalu, aby znaleźć usługę, która jest winna powolnego procesu uruchamiania:

$ sudo systemd-analyze blame

To polecenie wyświetla listę usług uruchomionych w czasie rozruchu wraz z czasem zainicjowania każdej usługi. Lista jest posortowana malejąco według upływu czasu.

Lista winnych może być dość długa, zazwyczaj pierwszych 10 wpisów wystarczy, aby znaleźć usługi wymagające bardzo czasu. Dlatego, potokuj wyjście powyższego polecenia do polecenia „head” w następujący sposób:

$ sudo systemd-analyze blame | head

Możesz również wydrukować wynik w postaci drzewa łańcucha zdarzeń krytycznych dla czasu. Aby to zrobić, wykonaj następujące polecenie w Terminalu:

$ systemd-analyze critical-chain

Na wyjściu zobaczysz łańcuch zdarzeń posortowanych według czasu (kiedy usługa stała się aktywna) w kolejności malejącej. Wartość po znaku „@” w każdym zdarzeniu to czas, w którym usługa stała się aktywna. Natomiast wartość po znaku „+” w każdej jednostce pokazuje czas, jaki zajęło uruchomienie usługi.

Na podstawie danych wyjściowych otrzymanych z powyższych poleceń można łatwo dowiedzieć się, która usługa uruchamia się dłużej iw zamian powoduje powolne uruchamianie systemu. Zacznij od góry i wyłącz usługi, których uruchomienie trwało dłużej, o ile nie są one wymagane do uruchomienia podczas rozruchu. Ponadto wyłącz wszystkie usługi, które chociaż zajmują mniej czasu, ale nie są wymagane podczas rozruchu, ponieważ wpływają również na czas rozruchu systemu.

Aby wyłączyć jakąkolwiek usługę, użyj następującej składni:

$ sudo systemctl disable service-name

To wszystko! W tym artykule nauczyłeś się, jak używać wbudowanego narzędzia systemd, aby dowiedzieć się, ile czasu zajmuje rozruch systemu. Jeśli uruchomienie trwa dłużej, możesz również znaleźć te usługi, które są za to odpowiedzialne, i wyłączyć je, aby skrócić czas uruchamiania. Należy jednak pamiętać, że niektóre usługi domyślne muszą uruchamiać się podczas rozruchu, więc nie zaleca się wyłączania żadnej usługi bez wiedzy, co faktycznie robi, w przeciwnym razie możesz mieć kłopoty.

Komentarze