krzysztof palikowski

jak ryba w webie

Tematyka

rekomendacje rodzina www drupal emilka cms podróże film internet społeczeństwo książka porady muzyka co u nas? co u mnie? felietony moje www windows bezpieczeństwo informatyka praca reklama web2.0 opowiadania log społeczeństwo sieciowe komputer 30 dni sieci społeczne networking podsumowania legnica wakacje bzdury vps krótko wspomnienia oprogramowanie społeczne civicspace luźne notki informatycy legnits cyberpunk monitorowanie zarządzanie znajomi itil wycieczki dedykowany stany odmienne webware phptemplate administracja serwer
wszystkie kategorie

menu_glowne

  • o autorze
    • 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://studio.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

  • Książki o drupalu
  • 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
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

  • Taksówkarz
  • Kung Fu Panda
  • Tracę Ciepło
  • Nie ma nadziei
  • Ś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
więcej
Kontakt z autorem :: Drupal Polska - społeczność użytkowników
2001-2008 krzysztof palikowski
RoopleTheme