Witaj na blogu prowadzonym przez Sebana. Spisuję tutaj swoje uwagi na różny temat. Przeważają tematy związane z Internetem, popieranymi przeze mnie rozwiązaniami dotyczącymi wykorzystania komputerów, oraz kilka innych. Przeczytasz tu również recenzje książek IT.

Load average

19 sierpnia 2006 | Klucze:
4 komentarze. trackback

Ostatnimi czasy zacząłem się zastanawiać co oznaczają wartości load average. Początkowo myślałem, że jest to obciążenie pod jakim pracuje procesor. Jednak za nic nie mogłem sobie sam wytłumaczyć dlaczego są aż trzy wartości i czemu są tak niskie nawet gdy komputer ewidentnie jest czymś zajęty.

Proces, kolejka

Proces jest to nic innego jak uruchomiony program widziany przez system operacyjny. Proces może znajdować się w różnych stanach. Załóżmy, że istnieją sobie dwa procesy procesA i procesB. Gdy procesA ma dostęp do procesora, procesor zajmuje się nim w tej chwili, to procesB czeka aż zwolni procesor zostanie zwolniony przez procesA. Gdy procesA musi na przykład coś odczytać z dysku to zwalnia procesor dla następnego, który czeka, wtedy procesB zajmuje jego miejsce, a procesA czeka za danymi z dysku i nie obciąża procesora. W systemie z jednym CPU może być wiele procesów ,,czekających`` na swoj czas procesora, ale może być tylko jeden proces zajmujący CPU w tej chwili. Procesy czekające trafiają do kolejki. Jest to wielozadaniowość.

loadavg

Gdy wyjaśnione są podstawowe pojęcia można przystąpić do definicji load average. Man top mówi lakonicznie:

trzy miary obciążenia systemu. Określaja one średnią liczbę procesów gotowych do uruchomienia w ostatniej minucie, ostatnich 5 i 15 minutach.
Czyli loadavg jest to ilość procesów czekających na swoją kolej dostępu do precesora w ostatnich n minutach. i to odpowiednio 1, 5, 15 minut. Przykładowe loadavg wygląda tak: seban@syrius:~% uptime
19:40:20 up 2:13, 3 users, load average: 0.17, 0.35, 0.54
Interpretacja typu: przez ostatnie 15 minut na wykonanie czekało pół procesu jest mylna. Tim O'Reilly w książce ,,UNIX Power Tools`` pisze:
The load average tries to measure the number of active processes at any time.
Zwracam uwagę na ,,any time''. Sposób obliczania tej wartości nie jest tak całkiem prosty i na pewno nie jest zorozumiały dla przeciętnego klikacza. Jednak jest on opisany na stronach teamquest.com.

Wyszukane

Informacje do tego wpisu czerpałem głównie z:

  1. zasoby teamquest.com

Nic tu odkrywczego nie ma, ale jednak kogo ze znajomych bym nie zapytał to nie wiedział. Jeśli znajdują się tu jakieś błędy bardzo proszę o poprawienie mnie.


KOMENTARZE

19 sierpnia 2006 | grzywacz |

Są błędy, np. "głółnie". ;-)

19 sierpnia 2006 | grzywacz |

Artykuł, do którego linukujesz jest dość ciekawy, aczkolwiek zdania typu "The fixed-point representation is used presumably for efficiency reasons since these calculations are performed in kernel space rather than user space." (z naciskiem na presumably) poddają kompetencje autora w pewną wątpliwość. ;-)

19 sierpnia 2006 | seban |

Nie myślałem o kompetencjach autora. Większość rzeczy które znalazłem w sieci czy to na www czy na grupach podawała własnie ten artykuł jako źródło wiedzy.

19 sierpnia 2006 | grzywacz |

No więc artykuł jest całkiem w porządku, nie przeczę, chociaż pozostawienie takiego przypuszczenia mnie trochę razi, bo zostawia łatwą do uzupełnienia dziurę.