Szybkie restarty

https://xpil.eu/Bwq

Od czasu do czasu zdarza mi się, że muszę zrestartować serwer, na którym siedzi blog xpil.eu. Najczęściej wtedy, gdy pojawiają się ważne aktualizacje systemowe wymagające restartu. Na przykład nowa wersja jądra.

Tak też było niedawno (a konkretnie: dziś rano). Ubuntu wrzuciło nowe jądra do repozytoriów i trzeba było zrestartować serwer.

Z głupia frant postanowiłem tym razem zmierzyć czas trwania takiego restartu. Wyniki poniżej.

Metoda, jakiej użyłem, krok po kroku:

1. Na komputerze lokalnym włączyć ping -t xpil.eu
2. Na serwerze wykonać komendę reboot
3. Obserwować wyniki komendy ping.

Wyniki komendy ping wyglądają tak:

Pinging xpil.eu [51.255.145.206] with 32 bytes of data:
Reply from 51.255.145.206: bytes=32 time=48ms TTL=51
Reply from 51.255.145.206: bytes=32 time=31ms TTL=51
Reply from 51.255.145.206: bytes=32 time=31ms TTL=51
Reply from 51.255.145.206: bytes=32 time=29ms TTL=51
Reply from 51.255.145.206: bytes=32 time=31ms TTL=51
Reply from 51.255.145.206: bytes=32 time=32ms TTL=51
Reply from 51.255.145.206: bytes=32 time=66ms TTL=51
Reply from 51.255.145.206: bytes=32 time=29ms TTL=51
Request timed out.
Request timed out.
Reply from 51.255.145.206: bytes=32 time=30ms TTL=51
Reply from 51.255.145.206: bytes=32 time=30ms TTL=51
Reply from 51.255.145.206: bytes=32 time=31ms TTL=51
Reply from 51.255.145.206: bytes=32 time=33ms TTL=51

Ping statistics for 51.255.145.206:
    Packets: Sent = 14, Received = 12, Lost = 2 (14% loss),
Approximate round trip times in milli-seconds:
    Minimum = 29ms, Maximum = 66ms, Average = 35ms

Cóż możemy stąd wywnioskować?

Ano, po pierwsze widać TTL=51. TTL mówi nam o ilości skoków przez Internet, jakie należy wykonać, aby dostać się z maszyny, na której jest uruchomiona komenda ping, do maszyny, którą badamy. Pole TTL siedzi sobie w czwartej warstwie modelu OSI (czyli TCP lub UDP) i działa tak, że jest zmniejszane o 1 przy każdym skoku (czyli przejściu przez ruter). Żeby więc poznać ilość skoków, nie wystarczy nam wartość 51, ale trzeba też dowiedzieć się, od jakiej wartości zaczynamy. Na ogół jest to jakaś potęga dwójki - domyślnie inna dla Windows (stare - przed Win 98 - TTL = 32, nowe - po Win 98 - TTL = 128), inna dla Linuksów (TTL = 64). W przypadku serwera xpil.eu wartość początkowa TTL wynosi 64, a więc trzynaście skoków od rutera do rutera, żeby dostać się do serwera xpil.eu oraz kolejnych trzynaście, żeby wrócić. Razem dwadzieścia sześć skoków.

Po drugie widać, że czas odpowiedzi mieści się w okolicach 35 milisekund, czyli średnio niecałe półtora milisekundy na skok. Całkiem niczego sobie.

Po trzecie jednak - naważniejsze dziś dla nas - widać ile czasu zajął restart serwera.

Do tego potrzeba nam wiedzieć, że komenda ping domyślnie wysyła dane co sekundę. Można ten czas skrócić lub wydłużyć dodatkową opcją, ale akurat tutaj mamy co sekundę.

Jak widać, po wysłaniu ośmiu pingów zaczęliśmy dostawać błąd "Request timed out.", oznaczający, że serwer nie odpowiada na pingi, czyli jest położony, martwy, głuchy, czy jak tam jeszcze się to określa.

Ile takich błędów dostaliśmy?

Dwa. A więc czas między wyłączeniem serwera, a jego ponownym włączeniem, to coś pomiędzy jedną a trzema sekundami.

Wyobraźmy sobie teraz, że restartujemy nasz domowy komputer czy laptopa, czy nawet smartfona. Czy zmieścimy się z tą operacją w dwóch sekundach?

Dobrze będzie, jeżeli załatwimy sprawę w dwadzieścia sekund... A na ogół trzeba poczekać minutkę albo i dwie.

Sprawę dodatkowo utrudnia fakt, że po restarcie zostało wczytane nowe jądro systemu, więc nawet jeżeli dostawca serwera próbuje stosować jakieś "brudne" sztuczki, w tym przypadku ma raczej związane ręce - maszyna musi uczciwie wykonać pełen restart.

Dwie sekundy. No, no... Jestem pod wrażeniem.

https://xpil.eu/Bwq

Leave a Comment

Komentarze mile widziane.

Jeżeli chcesz do komentarza wstawić kod, użyj składni:
[code]
tutaj wstaw swój kod
[/code]

Jeżeli zrobisz literówkę lub zmienisz zdanie, możesz edytować komentarz po jego zatwierdzeniu.