Jak znaleźć przyczynę rosnącego obciążenia serwera


12

Mam problemy z ładowaniem serwera i chociaż jestem nieco doświadczonym administratorem Linuksa, nie mam już pomysłów.

Problemem jest powolne, ale stale rosnące obciążenie serwera bez wyraźnej przyczyny.

Serwer to dwurdzeniowy procesor AMD Athlon (tm) 64 X2 6000+ z 6 GB pamięci RAM. Działa pod kontrolą Debiana Stable z systemem Linux gir 2.6.26-2-amd64 # 1 SMP Środa 19 sierpnia 22:33:18 UTC 2009 x86_64 GNU / Linux.

Serwer zasadniczo obsługuje Lighttpd, kilka procesów PHP FastCGI i bazę danych MySQL. Typowe zadania serwera WWW.

Procesor nigdy tak naprawdę nie jest w pełni wykorzystany, a pamięć jest wykorzystywana głównie na bufory i pamięć podręczną, co jest w porządku. Próbowałem ponownie uruchomić różne usługi, aby sprawdzić, czy jedna z nich ponownie zmniejszy obciążenie, ale bez powodzenia.

Oto grafika przedstawiająca obciążenie, procesor i IOStat:

Pytanie zatem brzmi: co może powodować powolne, ale wciąż rosnące obciążenie? Jak mogę dowiedzieć się, co jest za to odpowiedzialne?

Aktualizacja: zapomniałem wspomnieć, że po ponownym uruchomieniu serwera obciążenie spadnie do około 0,3 do 0,6 i zacznie się powoli wspinać w kolejnych tygodniach.


1
Opublikowane obrazy już nie istnieją. Jeśli nadal masz kopie, prześlij je ponownie.
Michael Hampton

Odpowiedzi:


6

Każdy proces zombie dodaje 1,0 do obciążenia. Być może widzisz nagromadzenie zombie.


Tak. Sprawdź wykres „ Liczba procesów ”.
Teddy

Jeśli to prawda, pisanie for N in {1..100} ; do sleep 60 & done ; exec sleep 500powinno wystarczyć, aby spowodować duże obciążenie. Ale tak nie jest. To polecenie powoduje 100 zombie, ale obciążenie mojego komputera pozostało poniżej 1.
kasperd

5

Znalazłem doskonałą wskazówkę w odpowiedzi na inne pytanie .

Poszukiwanie procesów w stanie „D” pokazuje cztery procesy PHP, które wydają się zawieszać przez dłuższy czas, odpowiadające „krokom” na krzywej obciążenia:

#> ps aux | awk '$8 ~ /D/  { print $0 }'
wiki      6651  0.0  0.0      0     0 ?        D    Oct04   0:41 [php-cgi]
bugs      6731  0.0  0.0      0     0 ?        D    Oct27   0:14 [php-cgi]
manpages  7536  0.0  0.0      0     0 ?        D    Oct30   0:21 [php5-cgi]
wiki     23847  0.0  0.0      0     0 ?        D    Oct06   1:32 [php-cgi]

To wydaje się być problemem. Muszę się teraz dowiedzieć, kiedy te procesy się zawieszają i jak to naprawić. Dziękuję wszystkim.


Ta odpowiedź rozwiązała mój problem. Obciążenie wzrosło z 0,5 do 350 i ciągle rosło. Było to spowodowane procesami zombie próbującymi odczytać usunięty folder zdalny.
Philippe Delteil,

2

Domyślam się, że serwer jest głodny IO, może powinieneś dodać statystyki iotop do wykresów

Zastanawiam się, czy możesz mieć aktywność io na aplikację, która jest również czynnikiem obciążającym serwer

http://rt.wiki.kernel.org/index.php/I/Otop_utility

innym narzędziem jest dstat


Dodałem również grafikę do IOStat. Dysk IO nie zwiększa się wraz ze wzrostem obciążenia. Czy do tego dążyłeś?
Andreas Gohr

Aha i dstat wygląda na użyteczne. Muszę przeczytać o tym trochę więcej.
Andreas Gohr

2

Gdyby to było We / Wy, zobaczyłby iowait (różowy) na wykresach procesora.


0

Tego rodzaju problemy często wynikały z dysku twardego, który nie jest wystarczająco szybki, aby obsłużyć dane wymagane przez bazę danych MySQL i serwer HTTP. Powinieneś spojrzeć na komendę iostat


IO wygląda dla mnie normalnie. I to nie wyjaśnia, dlaczego obciążenie powoli rośnie.
Andreas Gohr

-1

Zasadniczo wysokie obciążenie serwera nie jest wcale takie złe; oznacza to, że nie siedzisz bezczynnie i robisz mniej, niż mógłbyś inaczej. 80% -90% obciążenia twojej całkowitej pojemności (z pewnym pokojem „wybuchowym”) jest tym, czego zwykle się szuka. Polecam sprawdzenie danych wyjściowych mpstat i vmstat. W szczególności pierwsze 2 liczby z vmstat mogą dostarczyć bardziej znaczących informacji o tym, jak „utworzono kopię zapasową” pod względem procesów w kolejce uruchamiania. Ostatnia kolumna („wa”) danych wyjściowych vmstat może powiedzieć, czy i jak długo czekasz na zakończenie operacji we / wy. Rozmiar kolejki uruchamiania i czas oczekiwania we / wy są często skorelowane. Sprawdź także sar (z pakietu sysstat): to daje szczegółowy widok tego, co dzieje się w pewnym okresie czasu; rejestrowane przez niego dane są bardzo dokładne.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.