systemd: start w mniej niż 2 sekundy

systemd: start w mniej niż 2 sekundy

przez -
14 657
Linux Tux

Lennart Poettering, autor projektu systemd ogłosił publikację pierwszej wersji dokumentu, która zawiera dobre rady pozwalające zmniejszyć czas ładowania systemu w przestrzeni użytkownika do poniżej dwóch sekund. Systemd jest menadżerem usług w Linuksie, kompatybilnym ze skryptami SysVinit oraz Linux Standard Base. Jego największymi zaletami są: możliwość równoległego uruchamiania usług, śledzenie działania procesów przy pomocy cgroups, uruchamianie usług na żądanie, utrzymanie punktów montowania i automatycznego montowania w systemie oraz implementuje transakcyjną, opartą na zależnościach, logikę kontroli usług.

Aby przyśpieszyć start urządzenia, użytkownik powinien:

  • Upewnić się czy system nie używa fałszywych bloków urządzeń magazynujących jak LVM
  • Rozważyć ominięcie initrd, jeśli owego używa
  • Rozważyć wyłączenie SELinux (portal zaleca wyłączenie tylko w systemach desktop) i przeprowadzenie audytu. Wyłączenie tej funkcji pozwoli zaoszczędzić 100ms
  • Rozważyć wyłączenie Plymouth poprzez ustawienie wartości plymouth.enable=0 w wierszu poleceń jądra
  • Rozważyć wyłączenie syslog. Dziennik systemowy i tak jest używany na nowszych wersja systemd, więc można usunąć wszystkie implementacje syslog, a journalctl nadal będzie tworzyć idealne wpisy w /var/log/messages message log
  • Rozważyć maskowanie wielu bezrobotnych skryptów startowych pochodzących od dystrybucji, które sztucznie spowalniają bootowanie
  • Zastąpienie crona przez systemd timer units (na razie tylko do uruchamiania nieszczegółowych czasowo usług)
  • Upewnić się, że Linux posiada sterowniki, których potrzebuje i żadnych innych
  • Używać nowoczesnego systemu, który nie zawiera ConsoleKit (np. GNOME 3.4)
  • Usunąć lokalny MTA (Mail Transfer Agent), czyli serwer poczty elektronicznej
  • Kompilować aplikacje z rozwagą, gdyż różne komponenty w systemd są opcjonalne i można je wyłączyć (np. jeśli jesteś jedynym użytkownikiem, wyłącz logind)
  • Uruchomić systemctl, wyłączyć wykryte zbędne usługi i usunąć niepotrzebne paczki

  • A do tego Intel i7, dyski SSD oraz 21 GB RAMu ;-)

    • Bez przesady. Tak naprawdę do szybkie startu systemu wystarczy dobry dysk SSD z odczytem i zapisem na poziomie 320MB/s :) Np. Windows 7 na dobrej klasy dyskach potrafi uruchomić się w niecałe 17 sekund, a przy hibernacji jest to bodajże 10 sekund :)

  • joo

    Michał, dobry dysk SSD? Poleć coś fajnego. :D

    • Do jakiej kwoty i jak wielkość. Osobiście polecam Ci poczekać jeszcze chwilę, bo ma nadejść jakaś fala obniżek cen dysków SSD.

    • Rycho

      Taa,
      Fala obniżek=obniżenie jakości/trwałości.
      Większa wydajność/niższej kwocie= dużo większa awaryjność

    • TomJ

      Takie zielono czarne ale nie pamiętam nazwy.

  • Tom

    Co się porobiło, żeby proponować wyłączenie sysloga kosztem zakichanego ułamku sekundy przy starcie systemu…

    • 123qwe

      Systemd ma w sobie juz zaimplementowane logowanie, także po co dublowac? Czytać uważnie..

  • rozie

    “Upewnić się czy system nie używa fałszywych bloków urządzeń magazynujących jak LVM” – o co chodzi? Znaczy: jak to w oryginale było?

  • Hater

    Jakoś nie chce mi się wierzyć. I tak wszystko zależy od sprzętu.

  • "Upewnić się czy system nie używa fałszywych bloków urządzeń magazynujących jak LVM" – o co chodzi? Znaczy: jak to w oryginale było?

  • sx

    tia najlepiej wszystko w systemie powylaczac i potem plakac, ze nic nie dziala no ale wlaczac sie bedzie 0.5s szybciej ;/

    • Kist

      Nie, warto powyłączać zbędne usługi, używając przy tym danego nam przez Boga rozumu. Wtedy nadal będzie wszystko działać, a uruchamiać się będzie 10 sekund szybciej.

  • glewik

    Chętnie bym zobaczył jakiś przykładowy opis każdej operacji. Takie małe krok po kroku jak autor walczył z systemem i jakie osiągnął wyniki. Jakie można napotkać problemy etc.

    p.s.
    Wiem że wszystkie wyżej wymienione operacje można odnaleźć w sieci, ale często są to wpisy nieaktualne, nie zawsze po polsku a jednak przy grzebaniu w bebechach lepiej mieć pewność co dana opcja oznacza itd.

    Więc może ktoś popełni taki artykuł/wpis?