krzysztof palikowski

jak ryba w webie

Tematyka

rekomendacje rodzina www podróże drupal emilka cms porady film internet społeczeństwo książka co u nas? muzyka co u mnie? praca windows reklama web2.0 felietony bezpieczeństwo opowiadania moje www informatyka sieci społeczne legnica komputer 30 dni bzdury log społeczeństwo sieciowe wakacje
wszystkie kategorie

menu_glowne

  • Autor
    • Publikacje
    • Strony www
  • Kontakt
  • Galerie
    • Zdjęcia Emilki
  • Rekomendacje
    • Film
    • Muzyka
  • Kategorie

Monitorowanie obciążenia (load) serwera linux, raportowanie na mail

palikowski, 19 październik 2007 - 10:53am
  • debian
  • dedykowany
  • load
  • log
  • monitorowanie
  • serwer
  • vps
  • www

Pamiętnik znaleziony w Logu – część 1

W tym odcinku poznamy sposób aby dostawać na swój mail codzienny raport z uptime i wartościa load serwera z poprzedniego dnia.

Czym jest load? To uśredniona ilość korzystających z lub oczekujących na zasoby procesów z ostatnich 1, 5 i 15 minut. Wartość ta w idealnym świecie nie powinna przekraczać 1 (jak podaje życzliwy komentator dopuszcza się load 2 per rdzeń procesora), co oczywiście jest trudne przy dużych stronach i słabszych serwerach. Z moich obserwacji wynika, że jeśli nasz serwer w momencie szczytowego obciążenia będzie mieścił się w wartości 3 per rdzeń to raczej nie ma co panikować, choć przy takim load nasi użytkownicy prawdopodobnie odczują jakiś dyskomfort podczas korzystania z serwisu.

WARUNKI

  • Debian etch,
  • lighttpd,
  • mysql,
  • postfix,
  • php5 po fastCGI.

WSTĘP

Przyznam, że kupując dedykowany serwer pod stronę, zagrałem bardzo ryzykownie. Z linuxem miałem dotąd wspólnego tyle, że dwa razy zainstalowałem sobie Ubuntu jako desktop. Nie znałem więcej niż 3 polecenia konsoli – ls, cd i exit.

No ale serwer kupiony, na admina mnie i basoofkę nie stać, co poradzić, trzeba się tego Debiana nauczyć bo kasa leci a amerykanie się zbroją!

Najpierw postanowiłem dowiedzieć się czy serwer jaki kupiłem jest wystarczający do obsłużenia mojej strony.

PO CO NAM TO?

Musimy jakoś mierzyć, czy zakupiona maszyna radzi sobie z ruchem na stronie. Jeśli zrobimy to szybko, być może unikniemy kosztów opłacania zbyt słabego serwera i zamówimy mocniejszy. Poza tym codzienne sprawdzenie tej wartości pozwoli nam w przyszłości odkryć czy nasza strona nie zaczyna zbliżać sie do jakiejś wartości krytycznej i z wyprzedzeniem zabezpieczyć środki i czas na odpowiednie kroki – czy to wymianę sprzętu czy optymalizację strony.

Ja postanowiłem zrobić to na początku za pomocą dostępnych w każdym Debianie, bardzo prymitywnych metod. Jest to sposób nie wymagający zewnętrznych narzędzi, ale też mało wyrafinowany. Pamiętajmy jednak, że wymyśliłem go po kilku dniach zabawy z linuxem, a mam naleciałości windowsowe, gdzie wyrafinowanie jest rzadziej spotykane. Dlatego proszę wszystkich linuksowych mastahów o komentarze krytyczne a nie prześmiewcze.

DO ROBOTY

Po pierwsze musimy przekierować pocztę przychodzącą na konto root tak, aby trafiała do naszej skrzynki zewnętrznej. W moim wypadku wyedytowałem plik aliases:

  1. nano /etc/aliases

i wpisałem tam linijkę

root:mojadres@mail.com

a wszystkie inne usługi przekierowałem na root’a, a więc

admin:root
www-data:root
ftp:root

i tak dalej…

Następnie na moim koncie mailowym stworzyłem filtr kierujący pocztę z serwera do osobnego folderu, gdzie zaglądam co rano i sprawdzam pocztę.

Ale aby coś tam trafiło należy na serwerze to skonfigurować. Ja użyłem crontab’a aby raportował mi obciążenie serwera do pliku a raz na dobę wysłał mi ostatnie kilkadziesiąt linijek.

Najpierw stwórzmy plik uptime komendą:

  1. touch /var/log/uptime

Następnie wejdźmy w w edycję crontab’a

  1. crontab -e

Teraz dopiszmy dwie linijki odpowiadającą za dopisanie do pliku informacji o obecnym obciążeniu serwera

50 * * * * uptime >> /var/log/uptime
1,10,20,30,40 16-23 * * * uptime >> /var/log/uptime

co oznaczają linie? Pierwsza wywołuje polecenie uptime co godzinę, w 50-tej minucie. Dane wyjściowe są dopisywane (znak >> oznacza dopisanie a > nadpisanie) na końcu pliku /var/log/uptime. Druga linia robi to samo, ale co 10 minut między godzina 16 a 23. W tym czasie jest największy ruch, stąd chcemy mieć bardziej szczegółową informację.

Ostatni krok to dodanie linijki wywołującej polecenie tail:

55 5 * * * tail -n 64 /var/log/uptime

Spowoduje ona wysłanie o godzinie 5:55 rano ostatnich 64 linijek z pliku /var/log/uptime na skrzynkę root, a co za tym idzie na moją prywatną skrzynke pocztową.

Co za informację dostajemy? Bardzo podstawową, składającą się z uptime serwera, ilości zalogowanych użytkowników i wartości load serwera.

Przykładowy wycinek z codziennego maila:

14:50:01 up 14 days, 2:00, 0 users, load average: 2.44, 1.25, 0.86 15:50:01 up 14 days, 3:00, 0 users, load average: 0.36, 0.35, 0.40 16:01:01 up 14 days, 3:11, 0 users, load average: 0.74, 0.54, 0.47 16:10:01 up 14 days, 3:20, 0 users, load average: 0.74, 0.67, 0.55 16:20:01 up 14 days, 3:30, 0 users, load average: 0.69, 1.06, 0.81 16:30:01 up 14 days, 3:40, 0 users, load average: 0.94, 0.92, 0.81

Oczywiście przedstawiona metoda jest bardzo prostacka, ale na razie działa. Jeśli znacie dobry i lekki system monitorujący, to polećcie.

Wkrótce kolejny wpis do dzienniczka, tym razem o kopiach zapasowych.

Adres trackback do tego wpisu:

http://palikowski.net/trackback/1070
  • Wypowiedz się
  • cytuj

"Wartość ta w idealnym

gość (niezweryfikowany), 29 maj 2008 - 9:15pm

"Wartość ta w idealnym świecie nie powinna przekraczać 1" na kazdy rdzen w serwerze.
Jezeli serwer ma dwa rdzenie to load ponizej 2 jest ok, powyzej znaczy, ze procesy stoja w kolejce (ale to nadal nic zlego - generalnie load ponizej 2 * ilosc rdzeni jest ok i nie ma sie niczym przejmowac).

  • Odpowiedz
  • cytuj

dzięki za zwrócenie uwagi,

palikowski, 30 maj 2008 - 10:51am

dzięki za zwrócenie uwagi, już poprawiłem w treści artykułu

  • Odpowiedz
  • cytuj

Witam. Dzięki za art. Mój

Piotr (niezweryfikowany), 29 październik 2008 - 4:23pm

Witam.
Dzięki za art. Mój serwis posiada w godz. szczytowych ponad 20 load i strasznie się wolno ląduje... Nie wiem dokładnie od czego to zależy, mam zainst. OpenSuse, statystyki to 7 tys. uq dziennie przy serwerze Celeron D/215/220 1.20+ GHz 1 GB RAM. Czy to jest za słaby serwer na taki serwis? Czy może tak wysoki load jest wynikiem działania niepotrzebnego programu?
Pozdrawiam i z góry thx za odp.

  • Odpowiedz
  • cytuj

Nowe w dziale Internet

  • Najlepsze forum dla webmastera, webdevelopera
  • Pierwszy LegnITs
  • "Be"-bo ?
  • Nowe idzie w CMS-ach
  • legnITs
  • Mikroblog - na co mi to?
  • Nasza-Klasa - fenomen czy...
  • krytycy reklamy kontratakują
  • Aroundme Powraca
  • Weblisko wegetuje?
więcej

Rodzinne

  • Świeradów-Zdrój
  • Berlin
  • Spódniczka na każdą okazję
  • zwierzaki, weekendy i grille
  • Sobota nieczęsto bywa tak fajna
  • Zarobiony?
  • emilka na nogach
  • Emilka sunie po pilota
  • Sementery ad Sense
  • Wafellini
więcej

Inne

  • Świeradów-Zdrój
  • Za mało czasu? Znajdź sobie jakieś zajęcie!
  • Berlin
  • Wisełka
  • Spódniczka na każdą okazję
  • Chorwacja po raz wtóry
  • zwierzaki, weekendy i grille
  • Webware rusza
  • Sobota nieczęsto bywa tak fajna
  • Zarobiony?
więcej
Kontakt z autorem :: Drupal Polska - społeczność użytkowników
2001-2008 krzysztof palikowski
RoopleTheme