Posiadam serwer wirtualny z Debianem 5, który do niedawna działał stabilnie i bez problemu serwował dość sporą stronę www (około 5tys unikalnych wizyt dziennie, około 300 zapytań mysql na sekundę, transfer miesięczny blisko 60GB).
Następnie wydarzyła się awaria dysku hosta, vps został gładko przełączony na zapasowy dysk (po nfs) i działał z kilkukrotnymi zawieszeniami. Składałem to na karb wolnego dostępu do danych.
Następnie do hosta włożono nieco większy nowy dysk i zaczęły się czary, a konkretnie objawy są takie, że serwer działa kilkanaście godzin po czym zaczynają się tworzyć na liście procesów ,,zawieszone'' (nieznikające) procesy p.t.: /USR/SBIN/CRON (zrzut ekrany)
Ponieważ serwer przestawał odpowiadać na żądania http czy ssh, zapuściłem mu w cronie taki banalny wiersz logujący co minutę polecenie:
Kod: Zaznacz cały
uptime
Okazało się, że 3 dni pod rząd problem występował dokładnie o 5 rano, jakąś minutę po odpaleniu cron.daily.
Dzisiaj będąc podłączonym przez ssh znowu udało mi się zawiesić serwer, około 17:52. Co ciekawe nawiązana sesja ssh nie została przerwana, nie mogłem tylko nawiązać kolejnej.
Co jeszcze ciekawsze, od 17:52 nie był wykonywany ten cominutowy cron, zatem po restarcie serwera zapis w pliku wyglądał tak:
Kod: Zaznacz cały
17:49:01 up 3:09, 1 user, load average: 0.48, 0.84, 0.93
17:50:01 up 3:10, 1 user, load average: 1.24, 0.96, 0.96
17:51:01 up 3:11, 1 user, load average: 1.26, 1.04, 0.99
17:52:01 up 3:12, 1 user, load average: 0.70, 0.92, 0.95
18:43:01 up 0 min, 0 users, load average: 0.50, 0.15, 0.05
18:44:01 up 1 min, 0 users, load average: 0.56, 0.23, 0.08
18:45:01 up 2 min, 1 user, load average: 1.82, 0.59, 0.21
W trakcie ,,awarii'' próbowałem zrestartować mysql (stop się udał ale start już nie), apache2 (udało się), oraz wykonać:
Kod: Zaznacz cały
/usr/sbin/reboot
Dopiero reset z panelu zarządzania (do którego nie mam niestety dostępu i muszę męczyć admina za każdym razem) pomaga na ten dziwny stan.
Od czego zacząć analizę? Jestem dość miernym użytkownikiem Linuksa, Pooglądałem sobie logi, cron.daily, ale niewiele wywnioskowałem.
Dodam, że w cronie miałem już tylko liczenie webalizera około 2 w nocy i kopię zapasową około 3. Kopia zapasowa wykorzystywała rsynca. Dzisiaj to wszystko powyłączałem i poczekam czy coś będzie się działo?
Może ktoś spotkał się z takim dziwacznym przypadkiem?
Ponieważ bawię się teraz tym serwerem mam pytanie - czy wywołanie polecenia:
Kod: Zaznacz cały
run-parts --report /etc/cron.daily
Patrząc w logi jest to jedno z poleceń, które było wykonane jako ostatnie przed zawieszeniem serwera. Wykonuję je więc ,,na żywo'' i kończy się też zwiechą. Wywaliłem już stamtąd połowę skryptów, zostały tylko sysklogd i sysstat, zaraz sprawdzę co będzie jak je usunę. Siwych włosów mnie ten serwer przysporzy, coś czuję.