NFsec Logo

Średnie obciążenie procesora

27/03/2014 w Administracja Brak komentarzy.  (artykuł nr 439, ilość słów: 900)

W

iększość ludzi nie ma pojęcia, co oznacza średnie obciążenie procesora. Dla większości są to liczby reprezentujące trzy średnie wartości dla stopniowo dłuższego okresu czasu (jedna, pięć i piętnaście minut). Im niższe wartości tym lepiej. Wyższe mogą oznaczać problem lub przeciążenie maszyny. Pytanie nasuwa się samo. Jaki jest próg równowagi? Jakie są dobre, a jakie złe wartości? Kiedy powinniśmy być zaniepokojeni średnim procesora systemu, a kiedy natychmiast zająć się jego stanem?

Na początek zajmiemy się wytłumaczeniem co rzeczywiście reprezentują te trzy wartości:

05:58:34 up 12 days,  7:56,  1 user,  load average: 0.18, 0.13, 0.04

dla jednoprocesorowej maszyny. Pojedynczy procesor (z pojedynczym rdzeniem) jest jak pojedynczy pas ruchu na moście drogowym. Jeśli jesteśmy operatorem takiego mostu – czasami obserwujemy sytuację, w której samochody ustawiają się w kolejce do przejazdu. Dobry operator chciałby powiadomić ludzi, jak aktualnie odbywa się ruch na naszym moście. Dobrą informacją na tablicy przy wjeździe będzie miara pokazująca ile samochodów czeka w danym czasie. Jeśli samochody mają swobodny przejazd kierowcy decydujący się na wjazd na most będą wiedzieć, że mogą od razu przejechać. Jeśli samochody zaczną się ustawiać w coraz dłuższej kolejce – kierowcy będą wiedzieć, że występują opóźnienia w przejeździe. Więc jako operator mostu jakiego systemu numeracji możemy użyć? Może:

0.00 – oznacza, że nie ma żadnego ruchu na moście – w rzeczywistości wartości pomiędzy 0.00, a 1.00 oznaczają, że nie ma żadnych korków na moście i wjeżdżający samochód od razu będzie mógł przez niego przejechać.
1.00 – oznacza, że ruch na moście jest dokładnie w maksimum jego przepustowości – wszystko jest nadal w porządku, ale jeśli ruch drogowy trochę się zwiększy, przejazd samochodów może się trochę spowolnić.
powyżej 1.00 – oznacza przekroczenie przepustowości – jak bardzo? Więc wartość 2.00 oznacza, że z ilości samochodów chcących przejechać przez most utworzyły się dwa pasy ruchu – jeden pas jest na całej długości mostu, a drugi poza nim – oczekujący na możliwość wjazdu. 3.00 oznacza dwa pasy poza nim itd.

----------
########## = 1.00
----------

----------
 # # # # #  = 0.50
----------

####----------
 ############# = 1.70
    ----------

To jest w zasadzie to, co oznacza średnie obciążenie procesora. “Samochody” to procesy wykorzystujące kawałek czasu procesora (“przejazd przez most”) lub ustawiające się w kolejce do jego wykorzystania. Unix odnosi się to tego, jako długość wykonywania kolejki: suma liczby procesów, które aktualnie są wykonywane powiększone o liczbę procesów oczekujących w kolejce do wykonania.

Jako dobry operator mostu nie chcemy, aby samochody czekały na przejazd. Więc obciążenie naszego procesora w idealnym świecie powinno być zawsze poniżej wartości 1.00. Nie jest dla nas tragedią, jeśli od czasu do czasu trafi się tymczasowy, nagły wzrost powyżej 1.00. Jednak, gdy jesteśmy konsekwentnie powyżej wartości 1.00 – powinniśmy zacząć się martwić.

Więc idealnym obciążeniem jest wartość 1.00? Nie do końca. Problemem obciążenia 1.00 jest brak marginesu na inne operacje, które mogą nagle się pojawić. W praktyce wielu administratorów systemu rysuje linię dla zdrowego limitu na wartość 0.70. Dodatkowo należy przestrzegać kilku niepisanych zasad:

– jeśli obciążenie utrzymuje się powyżej 0.70 – nadszedł czas, aby zbadać powód tej sytuacji zanim się ona pogorszy.
– jeśli obciążenie utrzymuje się powyżej 1.00 – należy szybko naprawić problem chyba, że lubimy być budzeni w nocy.
– jeśli obciążenie utrzymuje się powyżej 5.00 – maszyna tylko spowalnia wszystko zamiast normalnie pracować.

System wieloprocesorowy:

W systemie wieloprocesorowym obciążenie jest zależne od ilości procesorów i ich rdzeni. 100% utylizacja jest w przypadku 2.00 dla dual-core, 4.00 dla quad-core itd. Jeśli wrócimy do analogii mostu – 1.00 naprawdę odnosi się do jednego pasa ruchu drogowego. Na moście z jedną nitką ruchu oznacza jej wypełnienie. Na moście z dwoma pasami obciążenie 1.00 oznacza 50% wypełnienie jego przepustowości – jeden pas jest pełny, więc drugi pusty może zostać jeszcze wypełniony.

----------
########## = 2.0 (dual-core / dual procesor)
##########
----------

System wielordzeniowy, a wieloprocesorowy:

Czy z punktu wydajności maszyna z jednym procesorem posiadającym dwa rdzenie jest odpowiednikiem komputera z dwoma procesorami po jednym rdzeniu? Tak. Mniej więcej. Ponieważ wchodzą tutaj takie subtelności jak ilość pamięci podręcznej, częstotliwość taktowania, separacja magistrali itd. Pomimo tych niuansów z punktu widzenia obciążenia CPU liczy się całkowita liczba rdzeni, niezależnie od tego, w jaki sposób są one fizycznie rozmieszczone. Doprowadza nas to do kolejnych nowych niepisanych zasad:

– liczba rdzeni = maksymalne obciążenie, które nie powinno zostać przekroczone.
– rdzeń to rdzeń – ich rozłożenie nie ma znaczenia dla wartości średniego obciążenia.

Monitoring:

Które z trzech wartości czasowych (1, 5, 15 minut) powinniśmy monitorować? Na liczby, o których wspominaliśmy w niepisanych zasadach należy zwracać uwagę w pięciu lub 15-minutowych średnich. Jeśli skoki powyżej 1.0 występują w jedno minutowym przedziale czasu – jest to jeszcze w porządku. Jeśli natomiast coraz częściej 15-minutowa średnia jest większa od 1.00 i się utrzymuje w takim stanie – powinniśmy przyjrzeć się okolicznościom występowania tego zjawiska.

Nie wszystko złoto:

Należy mieć świadomość, że opis ten tyczy się sytuacji opisującej tylko i wyłącznie obciążenie procesora uniezależnione od takich czynników, jak oczekiwanie na obsługę od strony dysku, czy czas skradziony procesorowi w związku z nakładem wirtualizacji. W dodatku utrzymywanie idealnego zakresu może być w dużej mierze podyktowane rolą jaką pełni serwer. Na przykład dla serwera WWW, czy bazy danych dobrze jest utrzymywać zapas mocy na niespodziewany wzrost ruchu pochodzący z niezapowiedzianej promocji serwisu, ale z serwerów zajmujących się przetwarzaniem danych, czy optymalizacją obrazów najlepiej jest wyciskać fabrykę.

Więcej informacji: Understanding Linux CPU Load, Examining Load Average

Kategorie K a t e g o r i e : Administracja

Tagi T a g i : , , ,

Komentowanie tego wpisu jest zablokowane.