Monitorowanie czasu pracy co sekundę - złe dla serwera?

11

Zastanawiam się, czy istnieją zalety sprawdzania, czy serwer działa, wykonując „żądanie HTTP GET” co sekundę?

Czy każdy serwer może to obsłużyć?

Donald
źródło
Inną opcją jest odwrotność: zamiast monitorować serwer z zewnątrz, monitoruj serwer od wewnątrz, na przykład z ru-on.com . Zasadniczo instalujesz mały skrypt na swoim serwerze, który bardzo często pinguje inny serwer, dzięki czemu możesz monitorować swój czas pracy bez utrudniania życia serwerowi internetowemu.
Maxim Zaslavsky
3
@Maxim, masz kilka problemów z twoją sugestią. Po pierwsze, nie sprawdza, czy usługa HTTP działa na serwerze. Po drugie, istnieje problem tego, co dzieje się, gdy sam serwer jest wyłączony. To nadal musi być monitorowane. Poza tym ten sam rezultat mógłby uzyskać prosty wget przeciwko lokalnej maszynie.
John Gardeniers

Odpowiedzi:

26

Czy „dowolny” serwer może to obsłużyć? Prawdopodobnie.

Powinieneś to zrobić Prawdopodobnie nie.

Zadaj sobie kilka pytań:

  1. Jak szybko będziesz reagować na awarię?
  2. Ile odsłon zazwyczaj otrzymujesz na sekundę?
  3. Ile kolejnych błędów chcesz zobaczyć, zanim nazwiesz go „Down” i wyślesz alert?
  4. Czy masz umowę SLA z klientami wewnętrznymi lub zewnętrznymi, którą należy honorować?
  5. Na podstawie powyższych pytań, co wydaje się rozsądnym czasem monitorowania i odpowiedzi?

Kiedy uczyłem się programowania, po raz pierwszy zdecydowałem, że chcę zrobić stoper. Kiedy w końcu dostałem działającą aplikację, zauważyłem, że użycie procesora na moim laptopie wynosiło 100% przy każdym uruchomieniu.

Moja pętla wykonawcza nie miała cyklu oczekiwania. Po prostu nadal działał w funkcji czasu.

Tego dnia nauczyłem się cennej lekcji: nie ma czegoś takiego jak nieskończenie dokładny pomiar.

Joseph Kern
źródło
6

Podczas gdy ja, podobnie jak wszyscy inni, kwestionuję powód tak częstego monitorowania strony technicznej nie stanowi problemu. Jedno żądanie GET na sekundę jest absolutnie błahe w porównaniu z typowym ładowaniem strony.

Czy Twój serwer może to obsłużyć? Nie mamy na co odpowiedzieć na takie pytanie, ale jeśli twój serwer ma problem z jego obsługą, sugerowałbym, że byłby całkowicie nieodpowiedni do wszystkiego, co mu służy.

John Gardeniers
źródło
3

Nagios lub Munin prawdopodobnie poradzą sobie z uruchamianiem testu co sekundę, ale jest to trochę obsesyjne. Czy jest powód, dla którego musisz tak często sprawdzać? Jeśli twój serwer jest niestabilny, prawdopodobnie masz większe problemy.

slillibri
źródło
1

Większość komercyjnych programów monitorujących domyślnie oferuje 1-minutowy lub 5-minutowy odstęp. To wydaje się być dobrym interwałem sprawdzania.

sapguy
źródło
Pingdom, na przykład, pozwala ustawić interwał, a następnie po wykryciu pierwszego wyłączenia, zwiększyć częstotliwość, z jaką pinguje serwer, aby sprawdzić, czy jest on ponownie tworzony.
Ankur Banerjee
>, zwiększ częstotliwość .. => ale minimum to wciąż 1 min, lub?
sapguy,
Na darmowych kontach myślę, że najniższa oferta Pingdom to 1 minuta. Nie mam konta premium, więc nie mogę powiedzieć, czy oferują opcję jeszcze częstszych czeków.
Ankur Banerjee
1

Nie ma nic złego w monitorowaniu serwera co sekundę, jest to po prostu mało wydajne, szczególnie na serwerach z dużym obciążeniem, w których zapytanie Apache może zawiesić się na kilka sekund, powodując żądanie utworzenia kopii zapasowej lub wysyłania fałszywych alertów na ten konkretny moment, ale jest to nie źle'. Jednosekundowe kontrole nie przyspieszą reakcji, a we 99,9% wszystkich okoliczności równie ważna jest kontrola 10 lub 30 sekund.

Richard
źródło
0

Zgadzam się tutaj w 100% z Józefem. Jeśli nadal chcesz przeprowadzić monitorowanie w czasie rzeczywistym, możesz rozważyć sniffowanie dziennika serwera WWW pod kątem błędów serwera i braku nowych wpisów w dzienniku przez pewien okres czasu. Nie obciąży serwera, ale wyzwalanie alertów na podstawie tego jest wyzwaniem :)

Pors
źródło
0

Rozdzielczość 1 sekundy jest naprawdę wysoka i prawdopodobnie nie jest potrzebna. Jednak wolę kolekcjonowanie, ponieważ zostało zaprojektowane dla znacznie wyższej rozdzielczości (kiedykolwiek 10 sekund) niż inne narzędzia OSS, takie jak Munin (5 minut).

n8whnp
źródło