systemd: start w mniej niż 2 sekundy

systemd: start w mniej niż 2 sekundy

    przez -
    14 510
    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?