| Termin | Definicja |
|---|---|
| obciążenie serwera | Obciążenie serwera to stopień wykorzystania jego zasobów procesora, pamięci i dysków przez działające usługi. Co oznacza obciążenie serweraObciążenie serwera opisuje stopień wykorzystania zasobów obliczeniowych podczas wykonywania zadań przez system operacyjny i uruchomione usługi. Najczęściej analizuje się czas pracy procesora, zajętość pamięci operacyjnej, aktywność urządzeń blokowych, czyli dysków, oraz ruch sieciowy. Sam procent użycia procesora nie wystarcza do pełnej oceny sytuacji. Serwer może mieć niewielkie użycie CPU, a jednocześnie długo oczekiwać na zakończenie operacji dyskowych albo nie mieć wolnej pamięci. W praktyce obciążenie należy rozpatrywać razem z czasem odpowiedzi usługi. Jeżeli żądania HTTP, zapytania aplikacji lub operacje plikowe zaczynają trwać dłużej, może to oznaczać przeciążenie jednego zasobu, zbyt dużą liczbę równoczesnych zadań albo problem z konkretnym procesem. Krótkotrwały wzrost aktywności nie musi oznaczać awarii. Istotne jest to, czy podwyższone wartości utrzymują się, powtarzają w określonych godzinach i powodują opóźnienia lub błędy. Procesor, pamięć i kolejki operacjiWysokie użycie procesora pojawia się wtedy, gdy procesy wykonują dużo obliczeń lub gdy system obsługuje dużą liczbę równoczesnych żądań. Warto rozróżnić czas użytkownika, czas jądra systemu oraz czas oczekiwania na operacje wejścia i wyjścia. Duży udział czasu jądra może wskazywać na intensywną obsługę sieci, sterowników albo systemu plików. Z kolei wysoki czas oczekiwania na wejście i wyjście sugeruje, że procesor nie jest głównym ograniczeniem, ponieważ zadania czekają na dane z dysku lub innego urządzenia. Pamięć operacyjna jest wykorzystywana przez procesy, jądro systemu i pamięć podręczną systemu plików. Niewielka ilość wolnej pamięci sama w sobie nie musi być problemem, ponieważ system może przeznaczać ją na cache i zwalniać ją w razie potrzeby. Niepokojące są natomiast częste operacje wymiany stron pamięci, określane jako swapping, oraz rosnąca aktywność urządzeń blokowych przy jednoczesnym spadku wydajności. Jeżeli system regularnie przenosi dane między pamięcią RAM a dyskiem, czas odpowiedzi procesów może znacznie wzrosnąć. W systemach uniksowych wartość load average przedstawia średnią liczbę zadań gotowych do wykonania albo oczekujących na zakończenie operacji wejścia i wyjścia w określonych przedziałach czasu. Nie jest to bezpośredni procent wykorzystania procesora. Interpretacja zależy od liczby logicznych procesorów: wartość 4 może być umiarkowana na maszynie z ośmioma logicznymi procesorami, lecz oznaczać pełną kolejkę na maszynie jednoprocesorowej. Parametr należy więc porównywać z liczbą dostępnych jednostek wykonawczych i z czasem odpowiedzi usług. Jak rozpoznać źródło spowolnieniaDiagnostyka obciążenia powinna obejmować obserwację w czasie, a nie pojedynczy odczyt. Przydatne są informacje o użyciu CPU, zajętości RAM, wymianie stron, liczbie operacji odczytu i zapisu, przepustowości dysku, długości kolejek oraz ruchu sieciowym. Trzeba również sprawdzić liczbę procesów i wątków, liczbę aktywnych połączeń oraz czasy odpowiedzi konkretnej usługi. Dopiero zestawienie tych danych pozwala odróżnić przeciążenie sprzętowe od błędu procesu, nieprawidłowej konfiguracji albo nagłego wzrostu liczby żądań. Ważne jest ustalenie, czy ograniczenie dotyczy całej maszyny, czy tylko jednego procesu. Jeden program może zużywać większość czasu procesora, zajmować znaczną część pamięci albo generować dużą liczbę operacji dyskowych. W innym przypadku procesy mogą pozostawać w kolejce, ponieważ urządzenie magazynujące osiąga limit operacji na sekundę. Przy problemach sieciowych należy rozdzielić przepustowość łącza od liczby połączeń i opóźnień. Wysoka przepustowość nie zawsze oznacza prawidłowe działanie, jeśli pakiety są opóźniane lub odrzucane. Porównanie bieżących wyników z okresem poprawnego działania pomaga wykryć zmianę. Jeżeli obciążenie rośnie stopniowo, możliwe jest wyczerpywanie zasobów, na przykład pamięci lub przestrzeni dyskowej. Jeżeli wzrost następuje nagle, należy sprawdzić ostatnio uruchomione zadania, procesy oraz nietypowy ruch. Należy unikać pochopnego kończenia procesów bez ustalenia ich roli, ponieważ może to przerwać działanie usługi albo pozostawić niekompletne operacje. Skutki przeciążenia i zasady postępowaniaDługotrwałe przeciążenie może prowadzić do wydłużenia czasu odpowiedzi, przekraczania limitów czasu, odrzucania nowych połączeń oraz narastania kolejek zadań. W skrajnych przypadkach system może przestać reagować na polecenia administracyjne, gdy większość zasobów jest zajęta obsługą już rozpoczętych operacji. Przeciążenie dysku może spowolnić także procesy, które same nie wykonują intensywnych obliczeń, ponieważ oczekują na zapis dzienników, odczyt konfiguracji lub dostęp do plików. Postępowanie naprawcze powinno wynikać z pomiarów. Może obejmować zatrzymanie wadliwego procesu, ograniczenie liczby równoczesnych zadań, usunięcie przyczyny nadmiernych operacji dyskowych, zwolnienie zajętej pamięci lub zwiększenie dostępnych zasobów. Po każdej zmianie należy sprawdzić, czy zmniejszyły się kolejki i czasy odpowiedzi, a nie tylko chwilowe użycie jednego podzespołu. W razie powtarzających się problemów potrzebne są dane z monitoringu, dzienniki systemowe oraz informacje o momencie występowania spowolnień. Taki materiał ułatwia techniczną diagnostykę serwera i pozwala odróżnić rzeczywiste przeciążenie od pojedynczego, krótkiego skoku aktywności. |