Gdy serwer jest przeciążony, czy to wirtualny, czy dedykowany, powoduje to powolne ładowanie stron internetowych i generowanie irytujących błędów zamiast treści. Konieczne jest uważne monitorowanie jego parametrów i przeprowadzanie terminowej analizy zasobów, aby uniknąć takiego wyniku,
Następnie przyjrzymy się diagnozowaniu poszczególnych zasobów za pomocą narzędzi dostawcy hostingu, a także za pośrednictwem terminala po stronie serwera. Ponadto rozważymy różne podejścia do rozwiązywania problemów związanych ze słabą wydajnością systemu. Instrukcje dotyczą dowolnych serwerów z systemem operacyjnym Linux, niezależnie od wstępnie zainstalowanego oprogramowania.
Sprawdzanie zasobów serwera za pomocą VMmanager
Narzędzie wirtualizacji VMmanager jest najprostszym, ale jednocześnie uniwersalnym rozwiązaniem do diagnostyki. Odgrywa kluczową rolę w zapewnieniu efektywnego zarządzania dedykowane or Serwery Wirtualne na większości nowoczesnych dostawców hostingu. Na przykład, sprawdzenie zostanie wykonane w wersji 6 narzędzia, jednak poprzednie wersje mogą również przeprowadzać podobną diagnostykę.
Do analizy należy przejść do VMmanager panel sterowania i wybierz interesującą Cię maszynę wirtualną:
Następnie użytkownik może natychmiast zobaczyć wykorzystanie zasobów w czasie rzeczywistym. Aby uzyskać bardziej szczegółowe statystyki, należy wybrać „Parametry”:
Karta szczegółowych statystyk u góry wyświetla ogólne charakterystyki serwera i typ wirtualizacji. Na wykresach można zobaczyć przeciążenie sieci, obciążenie procesora, wykorzystanie pamięci RAM i miejsca na dysku w czasie rzeczywistym:
Aby uzyskać bardziej szczegółową analizę przestrzeni dyskowej lub statystyk zasobów dla określonego okresu czasu, należy wybrać odpowiednią pozycję menu. Informacje o dyskach wirtualnych są wyświetlane w następującym formacie:
Statystyki obciążenia dla konkretnego zasobu wyświetlane są w formie wygodnego wykresu:
Można wyświetlić wykres obciążenia dla dnia, tygodnia, miesiąca, roku lub ręcznie wybrać potrzebne daty. Wyświetlane są wszystkie główne zasoby: procesor, pamięć RAM, pamięć masowa, interfejs sieciowy.
Wielu użytkowników oczekuje, że zasoby będą używane równomiernie przez pewien okres. Jednak nie zawsze tak jest. Na przykład interfejs sieciowy może wyglądać podobnie nawet w trybie bezczynności:
W tym przypadku nie są wymagane żadne środki. Jednak w przypadku procesora, pamięci RAM lub pamięci dyskowej serwer nie powinien stale wykorzystywać wszystkich 100% swoich zasobów; zalecane obciążenie nie powinno przekraczać 70%.
Sprawdzanie zasobów serwera w terminalu
Analiza całkowitego obciążenia
Wcześniej przyjrzeliśmy się niektórym opcjom analizy w Ogólna diagnostyka zasobów serwera artykuł. Tam rozmawialiśmy o standardowych narzędziach, takich jak na górzei również przyjrzałem się instalacji i konfiguracji Dane netto narzędzie, które pozwala nam monitorować zasoby serwera za pomocą przeglądarki. W tym artykule przyjrzymy się htop jako alternatywa dla Top Narzędzie do ogólnej analizy zasobów systemowych.
Narzędzie nie jest domyślnie preinstalowane w dystrybucjach Linuksa, więc zacznijmy od instalacji. W przypadku Debian/Ubuntu używamy polecenia:
apt-get install htop
W przypadku CentOS bardziej sensowne jest użycie CIEPŁY repozytoria. Są one domyślnie wyłączone, więc pierwsze polecenie odpowiada za ich dodanie, a drugie za zainstalowanie htop:
yum -y install epel-release
yum install htop -y
Zaraz po instalacji możesz uruchomić narzędzie z menu aplikacji lub w terminalu za pomocą odpowiedniego polecenia:
htop
Dzięki temu użytkownik będzie mógł zobaczyć wszystkie informacje o systemie:
W lewym górnym rogu wyświetlane są dane procesora, w tym użycie każdego rdzenia, pamięci RAM i pamięci wymiany. Pamięć wymiany w systemie Linux jest używana w przypadku niedoboru pamięci RAM, zapewniając stabilność systemu. W prawym górnym rogu można zobaczyć obciążenie procesora i liczbę aktywnych zadań. Część centralna pokazuje aktywne procesy z możliwością sortowania. Dolna część zawiera informacje o klawiszach skrótu i funkcjonalności. Sekcja „Pomoc” zawiera szczegółowy opis możliwości programu:
Przed diagnozą samego systemu konieczne jest dokładne zrozumienie, ile rdzeni/procesorów jest używanych na serwerze. Użytkownik może sprawdzić ich wartość w lewym górnym rogu htop użyteczność:
Lub uruchamiając polecenie:
nproc
W zależności od uzyskanej wartości zostanie obliczone dopuszczalne obciążenie całkowite (Load average w prawym górnym rogu). W naszym przypadku jest ono równe 2, co oznacza, że maksymalne obciążenie wynosi 2.0. Nie oznacza to jednak, że system całkowicie się zawiesi przy obciążeniu 2.0. Liczba ta może być wyższa, ale w takim przypadku wszystkie inne zadania będą w kolejce, a sam serwer będzie obciążony. Za idealną wartość uważa się obciążenie nie większe niż 70%. Na przykład Load average powinno mieścić się w granicach 0.7 na serwerze jednoprocesorowym. W przypadku serwera w powyższym przykładzie dobrym wskaźnikiem będą wartości nie wyższe niż 1.4.
Korzystanie z htop lub jego odpowiedników, użytkownik musi ocenić główne zasoby: średnie obciążenie procesora, użycie pamięci RAM, miejsce na dysku i interfejs sieciowy. Jeśli zasoby są minimalne, należy posortować procesy według użycia procesora, zidentyfikować operacje o dużym zużyciu, a następnie je zoptymalizować lub zakończyć. Jeśli nie można zamknąć programu lub optymalizacja się nie powiedzie, zaleca się rozważenie przejścia na serwer o bardziej wydajnej konfiguracji.
Sprawdzanie wolnej pamięci RAM
W tej sekcji przyjrzymy się bliżej ważnemu aspektowi funkcjonowania każdego serwera - odpowiedniej ilości wolnej pamięci RAM.
Najprostszym sposobem sprawdzenia wolnej pamięci RAM w dowolnym systemie Linux za pomocą terminala jest polecenie:
free -m
Na wyjściu otrzymujemy następujące dane w megabajtach: całkowitą, używaną, wolną i buforowaną pamięć RAM, a także wolumen wymiany:
Narzędzie jest przydatne do uzyskiwania ogólnych danych w określonym punkcie w czasie. Do diagnostyki dynamicznego wykorzystania pamięci RAM zalecamy vmstat Narzędzie umożliwiające skonfigurowanie częstotliwości aktualizacji informacji wyjściowych:
vmstat 1
W powyższym przykładzie dane będą aktualizowane co sekundę. Dane wyjściowe są generowane w formacie podobnym do za darmo:
Narzędzie dostarcza również ogólnych informacji o systemie, ale w naszym przypadku ważne są tylko kolumny odpowiedzialne za pamięć RAM, czyli memory i swap. Wszystkie wartości są podane w kilobajtach. Przyjrzyjmy się im bardziej szczegółowo:
Pamięć (BARAN):
- seria:pamięć wirtualna wymieniona na fizyczną.
- za darmo: dostępna pamięć fizyczna (RAM).
- polerować:pamięć używana jako bufor przed zapisem na dysku.
- Pamięć podręczna:pamięć używana jako pamięć podręczna w celu przyspieszenia dostępu.
Zamiana
- si:pamięć używana jako pamięć podręczna w celu przyspieszenia dostępu.
- so:dane zapisywane z pamięci fizycznej do pamięci wymiany.
Osobno warto wspomnieć o fakcie, że wszystkie zasoby systemowe diagnozujące narzędzia początkowo pobierają dane z logów. W przypadku pamięci RAM użytkownik będzie mógł przeglądać dane bezpośrednio, otwierając odpowiedni plik:
cat /proc/meminfo
Wynik jest dość obszerny, ale wystarczy zwrócić uwagę na pierwsze rekordy, aby przeanalizować pamięć:
Problemy z nadmiernym wykorzystaniem pamięci RAM są najczęściej związane z konkretnym zadaniem lub procesem. Na początku wystarczy diagnostyka za pomocą typowych narzędzi w celu zidentyfikowania problematycznych procesów. Jako rozwiązanie możesz rozważyć optymalizację konkretnej aplikacji, włączenie buforowania i kompresji danych, jeśli mówimy o dużych ilościach informacji, lub zwiększenie konfiguracji serwera.
Kontrola przestrzeni dyskowej
Diagnostyka przestrzeni dyskowej serwera nie jest mniej ważna niż jego inne zasoby. Z reguły sygnałami o potrzebie sprawdzenia są: brak możliwości tworzenia lub zapisywania istniejących plików, wolne działanie systemu i różne błędy wejścia/wyjścia.
Najwygodniejszym sposobem sprawdzenia jest polecenie:
df -h
W odpowiedzi narzędzie wyświetli informacje o wszystkich zamontowanych partycjach dysku:
Do bardziej szczegółowego monitorowania katalogów można użyć tego polecenia:
du -hs /*
W ten sposób użytkownik będzie mógł dowiedzieć się, ile miejsca zajmuje każdy katalog. Aby przywrócić wydajność systemu, należy zoptymalizować partycję dysku, która zużywa najwięcej pamięci. Zaleca się, aby nie dopuszczać do wykorzystania więcej niż 80-90% wolnej przestrzeni całkowitej; pozostałe 10-20% powinno wystarczyć do stabilnej pracy systemu. Zaleca się zwiększenie przestrzeni dyskowej, jeśli optymalizacja nie jest możliwa. Można to zrobić, dodając nowe lub rozszerzając istniejące dyski, a także korzystając z pamięci masowej w chmurze. Niezależnie od wybranego rozwiązania zaleca się zawsze wykonywanie kopii zapasowej, aby uniknąć utraty plików.
Sprawdzenie interfejsu sieciowego
Ostatnim, ale nie mniej ważnym aspektem diagnostyki serwera jest sprawdzenie interfejsu sieciowego. nethogi Narzędzie to może być wykorzystane w celu uzyskania ogólnych informacji o tym, ile ruchu generują procesy sieciowe w czasie rzeczywistym.
Instalacja i uruchomienie w systemie Cent OS:
yum install nethogs
nethogs
Dla Debiana/Ubuntu:
apt-get install nethogs
nethogs
Narzędzie pokaże procesy, które w danej chwili korzystają z zasobów sieciowych:
Zalecamy użycie jeślitop w celu uzyskania bardziej szczegółowej analizy.
Instalacja i uruchomienie w systemie Cent OS:
yum install iftop
iftop
Dla Debiana/Ubuntu:
apt-get install iftop
iftop
Wyjściem programu jest lista aktywnych połączeń wskazująca adresy IP, porty, ilość przesłanych danych i prędkość transferu. Główną zaletą programu jest wizualny projekt ładowania kanału sieciowego:
Po zdiagnozowaniu kanału sieciowego serwera i zidentyfikowaniu problemów z dużym obciążeniem zaleca się zwiększenie przepustowości połączeń sieciowych po stronie dostawcy hostingu lub optymalizację ustawień konkretnego problematycznego interfejsu. Jako narzędzie do tworzenia kopii zapasowych można użyć różnych systemów monitorujących, aby szybko śledzić zmiany w aktywności sieciowej i w razie potrzeby regularnie aktualizować infrastrukturę sieciową zgodnie z wymaganiami.
Podsumowanie
Podsumowując, można podkreślić, że diagnozowanie zasobów serwerowych jest integralną częścią efektywnego zarządzania faktyczny oraz dedykowane serwerów. Artykuł dał nam możliwość zapoznania się z głównymi narzędziami do pełnej analizy serwera, a także dał praktyczne zalecenia dotyczące rozwiązywania możliwych problemów. Regularna diagnostyka systemu pozwala serwerowi działać bezproblemowo, nawet bez aktywnego udziału użytkownika.