Jak poprawić prędkość rozruchu?


67

Widziałem wiele filmów, które przyspieszają Ubuntu, ale te metody tylko zwiększają wydajność pulpitu.

Chcę przyspieszyć uruchamianie komputera. Czy mogę coś zrobić, aby Ubuntu uruchomił się znacznie szybciej?


5
Systemy używające systemd(od 15.04 IIRC) są dostarczane z narzędziem, systemd-analyzektóre może pomóc w analizie, który proces trwa jak długo się uruchamia. Zobacz, man systemd-analyzeaby dowiedzieć się o wszystkich jego opcjach, ale prawdopodobnie będziesz używać go najczęściej systemd-analyze blame.
Bajt Dowódca

@ByteCommander Odpowiedź krok po kroku wykona zadanie.
Anwar,

Odpowiedzi:


28

Ogólnie rzecz biorąc, im mniej programów jest ładowanych podczas uruchamiania, tym szybszy powinien być system. Wypróbuj BUM (z centrum oprogramowania), aby wyłączyć niektóre niepotrzebne usługi, a także upewnij się, że nie masz zainstalowanych niepotrzebnych programów, które zostaną załadowane podczas uruchamiania. Wreszcie użycie dysku SSD jako urządzenia rozruchowego powinno znacznie poprawić bootime.

Aha jeszcze jedno, twój typ systemu plików również robi różnicę. EXT4 przeszedł pewne regresje wydajności (zgodnie z phoronix), ale nadal uważam, że EXT4 świetnie nadaje się do szybkiego uruchamiania.


możesz dodać, którą usługę można wyłączyć, co zwykle nie jest przydatne?
Philippe Gachoud,

@PhilippeGachoud Naprawdę nie pamiętam teraz. To jest od 2010 roku!
RolandiXor

Używam dysku SSD kompatybilnego wstecz, a moją płytą jest SATA. Szybko szaleje.
userDepth

17

Właśnie tego dnia spotkałem. Jego instrukcje „e4rat” tutaj

Ta mała aplikacja jest niesamowita.

Wziąłem przeciążony jednoprocesorowy sempron AMD pracujący na 2800+, który normalnie uruchamia Natty przy 1,45 minuty do 27,885 sekund.

Mam tabele rozruchowe, aby to udowodnić. To jest szalone! wprowadź opis zdjęcia tutaj


1
To naprawdę pomaga !!!
user12164,

Więcej osób musi wiedzieć o e4rat, jest to fantastyczne narzędzie, które w największym stopniu poprawiło wiele różnych porad i wskazówek.
Victor Bjelkholm

3
Czy nadal obowiązuje 12.04? Słyszałem, że spowoduje to problemy z ureadahead. Czy to prawda?
user138784,

@ user138784, jak rozumiem, dzieje się tak, ponieważ ureadahead działa podobnie jak e4rat, więc są to oczywiście konflikty. Ale e4rat z jakiegoś powodu wydaje się lepszy niż ureadahead. Być może przydałby się - e4rat z jakiegoś powodu domyślnie nie działa, wymaga drobnych poprawek , w przeciwnym razie plik dziennika nie zostanie utworzony.
Cześć Anioł

e4rat nie działał w 16.04
Anwar

17

Poprawa czasu rozruchu jest ściśle związana z wyłączaniem / zarządzaniem usługą, ale w obecnych odpowiedziach brakuje szczegółowych informacji na temat wyłączania usług, z których korzysta systemd.

Co to jest systemd?

Krótko mówiąc, systemd to menedżer systemu i usług dla systemu Linux, zgodny ze skryptami inicjującymi SysV i LSB. Więcej na ten temat można przeczytać na oficjalnej stronie projektu .

Sprawdź, które usługi zajmują najwięcej czasu

Użyj następującego polecenia, aby sprawdzić, która usługa zajmuje najwięcej czasu

systemd-analyze blame

Wyłączanie automatycznego uruchamiania usług podczas uruchamiania

Jeśli chcesz wyłączyć automatyczne uruchamianie usług podczas rozruchu, możesz użyć następującego polecenia

sudo systemctl disable some-time-eater-service.service --now

Możesz jednak sprawdzić, które inne usługi wymagają danej usługi. Aby to sprawdzić, użyj następującego polecenia

systemctl list-dependencies some-time-eater-service.service --reverse

Uwaga: Zastąp some-time-eater-service.servicerzeczywistą nazwą usługi, np postgresql@9.5-main.service.

Należy pamiętać, że wyłączenie automatycznego uruchamiania nie powoduje, że usługa nie daje się uruchomić. Usługa może zostać uruchomiona po uruchomieniu, gdy pojawi się potrzeba. Jeśli chcesz go całkowicie wyłączyć, przeczytaj następną sekcję

Całkowite wyłączenie usług.

Jeśli chcesz całkowicie wyłączyć usługę, aby nie można jej było uruchomić, powinieneś użyć maskzamiast wyłączać. Lubię to

sudo systemctl mask <SERVICE-NAME>

Zastąp <SERVICE-NAME>rzeczywistą nazwą usługi

Różnica pomiędzy maski disablejest maską zrobić to usługa całkowicie wyłączyć, nie można go uruchomić. Musisz unmaskuruchomić go z systemd (nadal możesz zacząć od service). Ale disablepo prostu wyłącz automatyczne uruchamianie usługi, możesz uruchomić ją później.

Na przykład po zamaskowaniu mojej postgresql@9.5-main.serviceusługi, gdy chciałem ją uruchomić, systemctlwyświetla się następujący komunikat

Failed to start postgresql@9.5-main.service: Unit postgresql@9.5-main.service is masked.

Narzędzie GUI

Jedno z narzędzi graficznych, które szczególnie mnie interesuje systemd-manager, jest wciąż w fazie rozwoju i nie zostało stworzone, aby trafiło do oficjalnego repozytorium Ubuntu. Można go jednak bardzo łatwo zainstalować ze strony github programu Systemd-Manager . Wydania zawierają pakiet .deb, który jest bardzo łatwy w instalacji. Potrzebujesz jednak GTK-3.16 lub wyższej.

Po pobraniu i zainstalowaniu możesz uruchomić go za pomocą systemd-managerpolecenia. Zacznij to.

Aplikacja ma dwa główne widoki. Jeden to Jednostki Systemowe, a drugi to Analiza Systemowa . Możesz go przełączyć za pomocą etykiety w lewym górnym rogu. Zobacz zrzut ekranu.

Przełączanie między widokami

Istnieją trzy rodzaje jednostek, którymi możesz zarządzać. Serwisy , gniazda i timery . Możesz przełączać się między nimi. Zobacz zrzut ekranu.

Przełączaj typy jednostek

Wyświetlanie informacji

Trzy główne zakładki to Pliki , Dziennik , Zależności .

  • Pliki to plik konfiguracyjny wybranej jednostki.
  • Dziennik jest wyjściem systemu na żywo podczas włączania / wyłączania / uruchamiania / zatrzymywania jednostek
  • Zależności pokazuje, jakie inne usługi lub jednostki muszą być włączone, aby uruchomić wybraną usługę.

Wskaźniki statusu

Obok nazwy jednostek znajdują się dwie kolumny wskazujące Stan. Lewy wskazuje, czy ta jednostka ma możliwość uruchamiania przy rozruchu, a prawy wskazuje, czy ta jednostka jest obecnie uruchomiona. Zobacz je na zdjęciu.

Włączone przy statusie rozruchu

Aktualnie uruchomiony status

Przełączniki sterujące

Aby włączyć toogle podczas uruchamiania lub uruchamiania, w prawym górnym rogu znajdują się dwa przyciski toogle. Włączone oznacza, że ​​urządzenia zaczną się uruchamiać i uruchamiać. Zobacz je na zdjęciu.

Toogle przełącza się na włączenie / uruchomienie

Pełny widok aplikacji pokazano poniżej

Pełny widok

Mam nadzieję, że to pomoże. Korzystam z innych odpowiedzi na temat systemd, ale naprawdę potrzebuję zebrać informacje w jednym miejscu.

Więcej informacji :

Aby dowiedzieć się więcej systemd, możesz odwiedzić te linki:

Inne odpowiedzi mają różne sugestie. W tym kupowanie dysku SSD, zwiększanie pamięci RAM itp. Jeśli możesz sobie na to pozwolić, te z pewnością pomogą, szczególnie sugestia SSD.


15

Przełącz z napędu magnetycznego na dysk półprzewodnikowy lub magnetyczny i półprzewodnikowy napęd hybrydowy. To sprawi, że każdy system operacyjny uruchomi się znacznie szybciej. Napędy hybrydowe nie są znacznie droższe. Jeśli nie chcesz posuwać się tak daleko, wybierz dysk twardy o prędkości 7200 lub 10 000 obr./min.


6
Szybkość dysku to obecne wąskie gardło rozruchowe.
Scott

@ scottl, biorąc pod uwagę, że moje dyski to SATA, a mój czas rozruchu jest podobny do 1:45 min zgłoszonego przez @RobinJ, wątpię, że istnieje jakiś powód, aby wskazać w szczególności wydajność dysku. Widzę jednak, że montowanie dysków i udziałów odbywa się w sposób synchroniczny, pomimo 1.) użycia fastbooti 2.) tych dysków nie ma znaczenia dla procesu rozruchu.
0xC0000022L

13

Zakładam, że mówisz o Ubuntu 11.04?
Próbuję tego od dłuższego czasu, bez większych sukcesów. W każdym razie te kroki zrobiły kilka sekund różnicy:

1. Usuwanie niepotrzebnych pakietów

apt-get purge brltty brltty-x11 foo2zjs min12xxw ttf-indic-fonts-core ttf-kacst-one ttf-khmeros-core ttf-lao ttf-punjabi-fonts ttf-unfonts-core

2. Używanie obu rdzeni / procesorów podczas procesu uruchamiania

ZRÓB TO TYLKO JEŚLI JESTEŚ PEWNY, ŻE KOMPUTER MA WIELU CPU / RODZAJE!
Otwórz /etc/init.d/rc(będziesz potrzebować uprawnień roota) i zastąp CONCURRENCY=noneprzez CONCURRENCY=shell. Następnie zapisz plik.

Aktualizacja

„CONCURRENCY = powłoka jest teraz przestarzała i jest aliasowana do„ makefile ”. Od 14.05.2010 r. Domyślnym ustawieniem jest„ makefile ”.”    ~ Jonathon

3. Wyłączanie niepotrzebnych demonów

Jest to nieco bardziej zaawansowane, więc najlepiej tego nie robić, jeśli nie wiesz, co to oznacza. Zainstaluj bumi uruchom z uprawnieniami administratora. Następnie odznacz pola przed demonami, na pewno nie potrzebujesz. Na przykład, gdy nie masz skanera, możesz go wyłączyć saned. A jeśli nigdy nie korzystasz z bluetooth, możesz również wyłączyć bluetooth.
Po zakończeniu naciśnij przycisk Zastosuj i kliknij opcję Tak lub Nie (nie ma to większego znaczenia).

Po wykonaniu tych kroków uruchom ponownie dwukrotnie . Z jakiegoś powodu pierwsze ponowne uruchomienie po zmianie wszystkich tych opcji trwa znacznie dłużej niż inne, ale powinieneś zauważyć pewną różnicę podczas drugiego restartu.


3
CONCURRENCY = powłoka jest teraz przestarzała i jest aliasowana do „makefile”. Od 2010-05-14 domyślnym ustawieniem jest „makefile”.
Jonathon

Czy można wymienić (lub podać krótkie wyjaśnienie), które pakiety usunąć? (pierwszy punkt wyjaśnienia). Zawsze pamiętać, że istnieją ludzie, którzy po prostu kopiuj-wklej i nagle są w stanie odczytać z terminala itp
Willem Van Onsem

1
@CommuSoft Ponieważ ta odpowiedź dotyczy Ubuntu 11.04, nie byłoby wskazane stosowanie tej samej odpowiedzi w nowszych wersjach. Niektóre z tych rzeczy już nie będą działać, a inne mogą uszkodzić system.
RobinJ

9

Za pomocą programu rozruchowego można tworzyć szczegółowe wykresy czasu potrzebnego do uruchomienia. Może to pomóc w podjęciu decyzji, co poprawić lub usunąć. Od https://wiki.ubuntu.com/BootCharting :

  • Zainstaluj pakiety bootchart i pybootchartgui za pośrednictwem apt-get lub Synaptic
  • Uruchom ponownie komputer
  • Program rozruchowy znajduje się w katalogu / var / log / bootchart jako plik .png

Współczesny odpowiednik znajduje się tutaj askubuntu.com/a/763070/178596
Wilf


3

Mój komputer uruchomił się DROGA szybciej, jeśli wykonałem alternatywną instalację i ręcznie dodałem pakiety GUI. Oczywiście, po prostu usuwa rzeczy, których nie potrzebuję, i które mogę dodać. Jeśli zamierzasz wrócić z „jak skompilować / zainstalować aplikacje X, Y i Z”, może to nie być dobry pomysł.


3

Jeśli ktoś ma z tym problem, po prostu zainstaluj BUM i uruchom go jako użytkownik root (uważaj, aby użyć gksudo zamiast zwykłego sudo). Następnie usuń zaznaczenie usługi, którą chcesz wyłączyć (wyłączyłem Apache2, demon PostGreSQL, MySQL, virtual box i in.) I to wszystko! Możesz całkowicie usunąć usługę, jeśli nie chcesz jej tam, ale jej wyłączenie wystarczy.

sudo apt-get install bum

wprowadź opis zdjęcia tutaj



2

Edycja 25.10.2016: Jeśli nie zamierzasz korzystać z hibernacji, ponieważ nie można zawiesić lub wolisz / S3 następnie można ją wyłączyć w Grub dodając noresumedo GRUB_CMDLINE_LINUX_DEFAULTw /etc/default/grubi run update-grub. Oto przykład na Chromebooku N22 z systemem GalliumOS:

livewire@zc01:~$ systemd-analyze
Startup finished in 8.580s (kernel) + 4.160s (userspace) = 12.740s

livewire@zc01:~$ systemd-analyze
Startup finished in 3.595s (kernel) + 4.254s (userspace) = 7.850s

Znalazłem to, ponieważ byłem ciekawy części „Uruchamianie skryptów local-premount” podczas rozruchu i zbadałem trochę w initramfs, co doprowadziło mnie do tej opcji, z której wcześniej korzystałem tylko wtedy, gdy mój system nie mógł się obudzić ze stanu hibernacji.


Edytuj 06.08.2016: Powinieneś zaktualizować system do najnowszej wersji dystrybucji Linuksa.


Składniki:

  • Zdobądź system UEFI z wolnym rozszerzonym kodem UEFI lub Coreboot
  • Uzyskaj dysk SSD
  • Zainstaluj Ubuntu w trybie UEFI
  • Bonus: Kompresuj initramfs za pomocą xz lzop i dołącz tylko potrzebne moduły. (Powinieneś naprawdę wiedzieć, co robisz, zanim spróbujesz to zrobić.)
  • Bonus: Usuń niepotrzebne demony lub skonfiguruj je, aby uruchamiały się szybciej. Chociaż domyślna instalacja jest już wystarczająco dobra.
    • Przykład: zadanie inicjujące btrfs, które szuka pul do zamontowania, podczas gdy na tym urządzeniu nie ma woluminów btrfs. To spowodowało, że usunąłem narzędzia btrfs z niektórych moich instalacji.

Muszę powiedzieć, że 32 sekundy to właściwie wystarczająco dużo. Nie będzie dużo szybciej z tradycyjnym sprzętem. Mój nowy Lenovo T530 potrzebuje tyle samo czasu na uruchomienie w starszym trybie. Z nowym mikro SSD, który niedawno zainstalowałem i Ubuntu w trybie UEFI, do naciśnięcia przycisku zasilania do zalogowania upłynęło 15 sekund. Nadal wydaje się, że marnuje 5 sekund podczas postu, ale absolutnie nie marnuje czasu na uruchomienie rzeczywistego systemu operacyjnego. Micro SSD ma prędkości transferu 280 MB / s, może być 500 MB / s SSD może osiągnąć 7 sekund. Ale to naprawdę zależy od producentów, aby skrócić czas uruchamiania przed systemem operacyjnym (POST i co nie).

Odnośnie profilowania rozruchu i współbieżności powłoki. Informacje te można uznać za przestarzałe lub ostatecznie mit. Pamiętam, że automatyczne profilowanie rozruchu lub coś, co sprawiło, że profilowanie rozruchu stało się całkowicie zbędne, zostało dodane do Linuksa lub systemu podstawowego wiele lat temu, od tego czasu nie używałem już profilowania rozruchu po zainstalowaniu nowego pakietu jądra. Mówiono, że ustawienie współbieżności powłoki niszczy rzeczy, ale w Systemd i Upstart powinno być również zbędne i nie powinno mieć pozytywnego wpływu.


1

Garbagecollector ma rację. Postępuj ostrożnie. Ale niektóre programy, które można bezpiecznie wyłączyć, to narzędzia do wyskakiwania wiadomości e-mail, takie jak Evolution, zwłaszcza jeśli początkowo nie używasz Evolution. Ponadto wszystko, co jest związane z drukowaniem, można wyłączyć, jeśli nie drukujesz wcale. To samo dotyczy sieci bezprzewodowej, jeśli masz połączenie przewodowe.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.