Maksymalny czas, przez który można uruchomić komputer z systemem Linux? [Zamknięte]

12

Właściwie miałem system Linux (z systemem Ubuntu 12.04.3) przez kilka dni bez restartu. Natknąłem się na niektóre błędy, takie jak zawieszanie się uśpienia, a niektóre systemy plików montowane w sieci nie uzyskują nawet możliwości pingowania go (zweryfikowano na innym komputerze, połączenie sieciowe działało dobrze).

Chciałem sprawdzić, czy Linux wymaga również ponownego uruchomienia komputera po pewnym czasie, aby uniknąć tego typu błędów, które nie są powtarzalne.

Jaki jest maksymalny czas na utrzymanie komputera? Czy są jakieś inne problemy, które mogłyby wystąpić, gdyby system działał przez rok lub dłużej bez restartu?

pRASHANT
źródło
2
Nie sądzę, aby istniał jakiś limit statyczny, ponieważ komputery po prostu nie powinny się budzić i działać przez tak długi czas. Nie ma limitu znamionowego; to tylko czas, przez jaki Twój komputer może pozostać bezczynny. Dlaczego nie chcesz od czasu do czasu restartować komputera?
TheWanderer
7
@ Zacharee1 umm, dlaczego CHCESZ zrestartować komputer? Jeśli nie jest to zużycie energii, naprawdę nie ma żadnego powodu. W rzeczywistości lepiej, jeśli tego nie zrobisz. Sprzęt będzie generalnie trwał, X lat na część. Dla uproszczenia powiedzmy, że X jest ogólnie 10 (nie będzie też daleko) - to zwykle 10 nieprzerwanych lat użytkowania, które mogą trwać. To normalne użycie. Jeśli zrestartujesz komputer, nie będzie to ciągłe użytkowanie, ale przy następnym uruchomieniu komputera uderzysz w sprzęt. Jeśli tak po prostu pozostawisz - większość elementów wiruje, co zmniejsza zużycie i zużycie.
VLAZ,
1
Oczywiście jest tak, że części ulegają większemu zużyciu podczas użytkowania. Jednak ponowne uruchomienie (w odróżnieniu od wyłączania systemu) nie zmniejsza zużycia komponentów, tylko je zwiększa. Ponadto zasadniczo nie rozumiesz, jak działają pamięci podręczne, jeśli uważasz, że dane buforowane w pamięci RAM spowalniają komputer.
user6053 30.04.15
1
Jeśli korzystasz z serwera WWW w systemie Linux (np. LAMP), chcesz unikać ponownego uruchamiania komputera w jak największym stopniu, ponieważ spowodowałoby to obniżenie liczby witryn internetowych potrzebnych do ponownego uruchomienia systemu. Nie sądzę, żebym kiedykolwiek przeszedł rok, ale na pewno kilka miesięcy bez restartu.
tcrosley
2
@ Zacharee1 prawie wszystko w pamięci RAM nie spowolniłoby twojego komputera. W przypadku wycieku pamięci w aplikacji może to zająć, powiedzmy, 60% pamięci RAM, a system wkrótce zacznie się zamieniać, co jest powolne, jednak rozwiązaniem jest ponowne uruchomienie aplikacji, a nie systemu operacyjnego. Zatrzymanie maszyny zatrzymuje zużycie komponentów, ale i tak należy je wymienić wcześniej niż zwykle w większości przypadków. Ponadto, jak wskazałem, elementy sprzętowe już same zmniejszają zużycie. Po prostu pozostawiając system bezczynny.
VLAZ

Odpowiedzi:

36

Pracując jako administrator systemu, widzę, że serwery Linux działają przez ponad 700-800 dni bez restartu, więc nie ma żadnych ograniczeń dostępności; otrzymane błędy nie są związane z samym Linuksem (jądrem).

Wiele usług można zrestartować, a większość błędów można rozwiązać w systemach produkcyjnych.

użytkownik3417815
źródło
7
Potwierdzam to. Obecny czas pracy na jednym z moich serwerów: ~ $ czas pracy 00:13:15 do 883 dni, 9:00, 1 użytkownik, średnie obciążenie: 0,00, 0,01, 0,05 Ubuntu 12.04.4 LTS. Nie trzeba niczego aktualizować, ponieważ nie działa nic ważnego.
Minthos,
5
Z powodzeniem utrzymuję osadzoną instancję Linuksa przez ponad 3 lata.
Rafał Cieślak
16

Po pewnym czasie nie ma potrzeby technicznej ponownego uruchamiania komputera. Kopalnia działa od miesięcy (łącznie z aktualizacjami modułu jądra), z pewnymi zawieszeniami (do pamięci RAM i dysku) pomiędzy nimi.

Są sytuacje, w których

  • jest to absolutnie konieczne, aby ponownie uruchomić, jak aktualizacje jądra (ale to nie są pilne w wielu sytuacjach, aw niektórych przypadkach można zastąpić jądro działa z nowym systemem na żywo. Zobacz kexec i ksplice )
  • może być łatwiej zrestartować cały system zamiast tylko określonego (zestawu) podsystemu.

Mogą występować pewne problemy, które „pogarszają się” w czasie (np. Problemy ze sterownikami sprzętu, nieszczelne procesy), ale są one uważane za błędy i często można je naprawić za pomocą aktualizacji oprogramowania lub obejść przez ponowne załadowanie / ponowne uruchomienie tego konkretnego podsystemu (również patrz wyżej).

David Foerster
źródło
6
W locie łatanie jądra zyskuje więcej szumu, niż na to zasługuje. To świetnie, jeśli masz czas, aby sprawdzić, czy aktualizacja będzie działać w ten sposób, ale każda zmiana kodu, która powoduje, że struktury danych w pamięci różnią się, nie może być łatana na bieżąco. Ogólnie rzecz biorąc, nie będzie umożliwiał aktualizacji bez konieczności ponownego uruchamiania do nowych jąder. Pozwoli to na poprawki bez konieczności restartowania w przypadku błędów sprawdzania uprawnień. To jest WSPANIAŁE i niesamowite, że nie trzeba ponownie uruchamiać serwera, ale nie oczekuj, że zapewni to bezobsługowe aktualizacje do nowych wersji.
Peter Cordes
1
Zgadzam się z Peterem. Dlatego nie wspominałem o łataniu na żywo w tym kontekście, aby nie komplikować rzeczy; niestety ktoś edytował moją odpowiedź.
David Foerster
7

Chociaż jestem pewien, że istnieją serwery o wyższym czasie działania, przedstawiam następujące przykłady z jednego z moich jako przykład tego, co jest możliwe:

# uptime
04:58:44 up 2186 days, 23:15,  1 user,  load average: 0.02, 0.02, 0.00

Ten serwer został zainstalowany wkrótce po tym, jak kontroler domeny został uruchomiony i nie został wyłączony. Do tej pory nadal szczęśliwie robił to, do czego był pierwotnie przeznaczony, a kiedy ten cel zostanie przeniesiony na inny serwer, umieszczę tam coś tylko w celu monitorowania czasu pracy i prawdopodobnie pozostanie, dopóki nie będę w stanie uzasadnić utrzymania go przy życiu już dłużej.

Dlatego myślę, że „Nie ma maksimum” jest zdecydowanie poprawną odpowiedzią.

Kaithar
źródło
7

Nie wiem, czy ma to wpływ na stabilność systemu, ale maksymalny czas działania pokazany w Ubuntu z jądrem 3.19-xx to 68,0962597349822lata na komputerze 32-bitowym i 292471208677,8627lata na komputerze 64-bitowym.

Jest tak, ponieważ bieżący czas pracy systemu, zwracany przez sysinfo()syscall, jest zwracany jako __kernel_long_ttyp , który jest zadeklarowany jako longw 32-bitowym jądrze i jako long longw 64-bitowym jądrze ;

A longna komputerze 32-bitowym ma maksymalną wartość 2147483647;

A long longna komputerze 64-bitowym ma maksymalną wartość 9223372036854775807;

Robienie matematyki, 2147483647s= 68,0962597349822lata i 9223372036854775807s= 292471208677,8627lata.

Gdy wartość ta wzrośnie powyżej możliwości danego typu, nastąpi przepełnienie arytmetyczne i zostanie ona ustawiona na najmniejszą dopuszczalną wartość ze względu na jej typ (w obu przypadkach liczba ujemna): może to stanowić problem dla programów, które na niej polegają.

kos
źródło
3
OP nie pyta o maksymalny czas działania systemu, który system może dokładnie zalogować, pyta, czy będzie musiał regularnie restartować system z powodu pewnej stabilności / etc. ograniczenie.
Boluc Papuccuoglu,
@BolucPapuccuoglu Sprawdź, czy Twoim zdaniem lepiej pasuje do tego formatu, zwłaszcza ostatniej części. Wskazałem wyraźnie, jaki może być problem. Jeśli nadal uważasz, że tak nie jest, usunę moją odpowiedź.
Kos
6

Byłem kiedyś w klasie z sysadminem, który twierdził, że ma serwer Linux, który działał bez restartów przez ponad dekadę. Nie ma nieodłącznego powodu, dla którego system musi być regularnie uruchamiany ponownie. Jest wymagany tylko w ograniczonych przypadkach, takich jak aktualizacje jądra.

FWIW, zwykle zostawiam komputer domowy z systemem Windows uruchomiony. Zwykle będzie działał dobrze przez kilka tygodni bez ponownego uruchamiania.

Phillip
źródło
Jeśli komputer z systemem Windows działa przez kilka tygodni bez ponownego uruchamiania, oczywiście nie masz włączonych automatycznych aktualizacji. Są one zazwyczaj pobierane co tydzień i prawie zawsze powodują ponowne uruchomienie.
tcrosley
@ tcrosley Kto i tak potrzebuje automatycznych aktualizacji? To jedna z pierwszych rzeczy, które wyłączam na tych komputerach. Zdecyduję, jak korzystać z mojego komputera, a nie jakiejś automatycznej usługi.
Maszt
@tcrosley Czy na pewno aktualizacje zabezpieczeń systemu Windows są zazwyczaj pobierane co tydzień? Rozumiem, zarówno na podstawie zasad wydawania aktualizacji firmy Microsoft , jak i na podstawie własnego doświadczenia w korzystaniu z systemu Windows, że aktualizacje są zwykle wydawane mniej więcej raz w miesiącu. Maszt: Chociaż na pewno możesz wyłączyć automatyczne aktualizacje, nie wiem, dlaczego spowodowałoby to dłuższe przestoje. Prawdopodobnie - miejmy nadzieję! - aktualizujesz ręcznie, przynajmniej w celu poprawek bezpieczeństwa. Z drugiej strony, wyłączając aktualizacje automatyczne może łatwiej kontrolować kiedy następuje przestój.
Eliah Kagan
@EliahKagan Mam konfigurację komputera do pobierania nie tylko poprawek bezpieczeństwa, ale także aktualizacji aplikacji, sterowników itp. Mogę się mylić, że raz w tygodniu, ale z pewnością częściej niż raz w miesiącu. Sprawdza dostępność aktualizacji każdego ranka o 3:00. Przyjdę rano i stwierdzę, że mój system uruchomił się ponownie, a po zalogowaniu pojawi się komunikat „Twój system został ponownie uruchomiony w celu zainstalowania aktualizacji”.
tcrosley
4

Linux (jądro) jest bardzo dobry w zwalnianiu zasobów po wyjściu programów. GNU / Linux, cały system operacyjny, ogólnie działa dobrze bez końca. Ponowne uruchomienie programów w przestrzeni użytkownika po ich aktualizacji jest ogólnie dobrym pomysłem i często najłatwiejszym sposobem na uzyskanie wszystkiego przy użyciu zaktualizowanej wersji glibcjest ponowne uruchomienie systemu.

W systemach z błędami sterownika (zwykle błędy sterownika karty graficznej, wszystko inne jest zwykle bardzo solidne), czasami pojawia się dziwne zachowanie, które staje się dziwniejsze, jeśli nie uruchomisz się ponownie szybko. Jeśli zobaczysz OOPS jądra na swoim dmesgwyjściu, powinieneś zrestartować komputer, gdy tylko będzie to wygodne, i zgłoś to (lub google w poszukiwaniu innych osób z podobnymi problemami na podobnym sprzęcie, na wypadek, gdyby był to znany problem). Distros nie dostarczają najnowszych wersji deweloperskich stosu graficznego, więc czasami błąd jest już naprawiony, a twoja karta graficzna jest po prostu zbyt nowa, aby sterowniki w wersji dystrybucyjnej, którą prowadzisz, były stabilne. W takim przypadku poszukaj PPA ze zaktualizowanymi kompilacjami mesa / drm / xorg. (Nie jestem pewien, czy najlepszym wyborem do uruchomienia Ubuntu z najnowocześniejszym stosem graficznym jest ATM).

W każdym razie, z wyjątkiem sterowników lub innych błędów jądra, Linux może działać w nieskończoność bez konieczności restartowania w celu wyczyszczenia fragmentacji pamięci lub czegokolwiek podobnego.

Mam router Linux / firewall / mailserver / shell box (P3 450MHz, OCed do 500MHz), który rutynowo widzi czasy przestoju setki dni. Zrestartowuję się tylko w celu zmiany kolejności kabli zasilających lub wymiany uszkodzonego zasilacza. Działa stabilnie z tym samym procesorem / pamięcią RAM / dyskami twardymi od prawdopodobnie 15 lat. Nigdy nie musiałem restartować się „, ponieważ zaczynało być niestabilne”. Było to zawsze z konkretnego powodu, takiego jak awaria zasilania, aktualizacja jądra lub przerwa w zasilaniu, a bateria mojego UPS była prawie wyczerpana (uruchamiając automatyczne wyłączanie za pomocą apcupsd).

Jeśli twój system działa dziwnie, sprawdź dmesgproblemy. Jeśli to tylko twój pulpit, to jeśli właśnie zainstalowałeś jakieś aktualizacje pakietów innych niż jądro, wyloguj się / zaloguj (lub uruchom ponownie, ale nie musisz). Odkryłem, że Kubuntu 15.04 będzie łatwo napotykać problemy po aktualizacjach pakietów, myślę, że z powodu binarnej niezgodności między uaktualnionymi / niezaktualizowanymi wersjami tej samej biblioteki działającej w tym samym pliku binarnym. (Zobacz dyskusję na temat tego błędu ).

Moje sprawdzanie problemów ze sprzętem to uruchomienie memtest86 +. ( aptitude install memtest86+) Niech uruchomi się pełne przejście lub uruchom przez noc. Nie gwarantuje to stabilnego systemu, ponieważ spadki napięcia zasilającego przy obciążeniach szczytowych mogą się obecnie zdarzyć z procesorami, a memtest nie wyklucza tego. Nie spowoduje to również nagrzewania się procesora, jak Prime95.

Peter Cordes
źródło
3

Moja maszyna uruchomiła się ponownie dopiero 15.04 po tym, jak działała przez 11 dni bez żadnych dziwnych błędów, które mogę sobie przypomnieć. Jeśli wykonujesz ciężką pracę i programujesz w systemie, czasami może to być jedyna opcja ponownego uruchomienia, ale zawsze jest to konieczne.

Patrick
źródło
Dokładnie masz rację! Rozwijam się 16.04 od kilku miesięcy. Z powodu zamrożenia każdego dnia ponownie uruchamiam komputer. Ale jestem pewien, że powodem jest to, co zainstalowałem i używam na sterownikach itp.
efkan
1

Technicznie nie ma żadnych ograniczeń. po prostu musisz ustawić go tak, aby nie spał ani się nie wyłączał.

TheSuperMakuhita
źródło
3
Czy mógłbyś bardziej wyjaśnić i dopracować swoją odpowiedź? Szczególnie ta linia you just have to set it to not sleep or shut down.
heemayl
„Technicznie nie ma ograniczeń” wystarczyłoby na krótką odpowiedź, zwięzłą i poprawną.
Léo Lam
0

Osobiście nie chciałbym uruchamiać laptopa lub komputera przez kilka dni bez ponownego uruchamiania lub wyłączania go.

Po prostu ze względu na główne komponenty, które generują ciepło, może przyspieszyć zużycie MB.

(Tak, jeśli nie masz odpowiedniego chłodzenia i wentylacji)

Kingtoor
źródło
4
Jeśli są to śmieci konsumenckie, takie jak Acer lub HP, ale laptopy Thinkpad lub Dell Latitude klasy biznesowej są zazwyczaj lepiej wykonane; Osobiście mam Latitude działającą 24x7 od ponad roku, jest tuż obok mnie i nadal działa idealnie.
@kingtoor Dlaczego lepiej byłoby uruchamiać nieodpowiednio schłodzoną maszynę 24x7 z okazjonalnymi restartami, niż uruchamiać ją 24/7 bez restartów? (A może nie to masz na myśli?)
Eliah Kagan
1
Wyłączanie / spanie, gdy nie jest używane na laptopie, który nagrzewa się, gdy jest uruchomiony 24 godziny na dobę, 7 dni w tygodniu. Nie ma to związku z ponownym uruchomieniem komputera (bez poświęcanego czasu) a ciągłym czasem pracy.
Peter Cordes
Moja odpowiedź jest w moim komentarzu.
Kingtoor,
Nie widzę też żadnego powodu, aby przeciętny użytkownik uruchamiał komputer 24/7, chyba że ma serwer. To jest moja opinia.
Kingtoor,
0

Nie jest specyficzny dla Ubuntu, ale mam rocznika laptopa z 1997 roku (300 MHz, 288 MB RAM) z dystrybucją opartą na Debianie, która ma czas pracy powyżej 60 dni, podczas gdy działa jeden program (plus rzeczy systemowe i podstępne) i nie uruchamianie i zatrzymywanie innego oprogramowania poza terminalem, aby co tydzień ładować aktualizacje. Ostatecznie zawiesił się podczas ładowania aktualizacji, około 63 dni. Dla kontrastu mój komputer stacjonarny Kubuntu 14.04 zawiesi się po około dwóch tygodniach. Zgadzam się z innymi odpowiedziami; chodzi bardziej o to, jakie oprogramowanie uruchamiasz i jak często uruchamiasz i zatrzymujesz inne programy, niż o Linuksa jako takiego.

Zeiss Ikon
źródło
Jeśli się zawiesił (mam na myśli silne zawieszenie lub zawieszenie, nie tylko awarię X, którą można naprawić bez ponownego uruchamiania), prawdopodobnie oznacza to problem ze sprzętem (przegrzanie, zła pamięć RAM itp.). Jako administrator systemu czasami mam serwery działające przez wiele miesięcy bez ponownego uruchamiania, ale wolę tego unikać, ponieważ musisz zrestartować komputer, aby zastosować aktualizacje jądra.
Kiedy blokada ekranu zniknęła z czarnego ekranu, nie ma skutecznego sposobu, aby stwierdzić, czy to twarda blokada systemu, czy awaria serwera X - i nie ma możliwości uzyskania dostępu do wiersza poleceń (bez możliwości wprowadzenia hasła) w celu ponownego uruchomienia X lub cokolwiek innego może być. Skłaniam się do myślenia, że ​​jeśli zajmie to dwa tygodnie, nie będzie to przegrzanie ani zła pamięć RAM.
Zeiss Ikon,
Ctrl + Alt + F1 nie działa? Winowajcą może być zły sterownik grafiki - być może nie zostały one przetestowane z myślą o wysokiej dostępności, ale Linux z pewnością jest w stanie działać przez lata bez problemów.
Będę musiał spróbować CTL-ALT-F1, jeśli będę mógł to zapamiętać następnym razem, gdy dostanę blokady ekranu (korzystałem z twardego resetu). Zakładam, że użyłbym wtedy startxdo ponownego uruchomienia serwera X? Czy też muszę użyć specjalnego polecenia, aby ponownie uruchomić usługę? Wiem dobrze, że stare Linux mówi: „Ponowne uruchomienie dotyczy aktualizacji jądra i instalacji sprzętu”.
Zeiss Ikon,
Zaloguj się jako root lub jako zwykły użytkownik i używaj sudo i postępuj zgodnie z tymi instrukcjami