<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>InnerVision TechBlog &#187; system operacyjny</title>
	<atom:link href="http://techblog.innervision.pl/tag/system-operacyjny/feed/" rel="self" type="application/rss+xml" />
	<link>http://techblog.innervision.pl</link>
	<description>Technologie informacyjne po naszemu</description>
	<lastBuildDate>Tue, 19 Apr 2011 14:03:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Load Average &#8211; o co chodzi?</title>
		<link>http://techblog.innervision.pl/2009/11/13/load-average-o-co-chodzi/</link>
		<comments>http://techblog.innervision.pl/2009/11/13/load-average-o-co-chodzi/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 23:00:47 +0000</pubDate>
		<dc:creator>Piotr Rybicki</dc:creator>
				<category><![CDATA[Technikalia]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[system operacyjny]]></category>
		<category><![CDATA[tuning]]></category>

		<guid isPermaLink="false">http://techblog.innervision.pl/?p=39</guid>
		<description><![CDATA[W mojej karierze zdarzyło mi się kilkakrotnie rozmawiać z kandydatami na stanowisko Linux/Unix admina. Szybko odkryłem, że odpowiedzi na pytanie &#8216;Co to jest Load Average&#8217; zaczynają być nie tyle nie trafione, co zabawne. Mało kto potrafił odpowiedzieć w taki sposób, żeby dało się wyczuć, że wie o czym mówi. Spróbuję więc wyjaśnić pokrótce co to [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-thumbnail wp-image-41" title="putty" src="http://techblog.innervision.pl/wp-content/uploads/2009/10/putty-150x150.PNG" alt="putty" width="150" height="150" />W mojej karierze zdarzyło mi się kilkakrotnie rozmawiać z kandydatami na stanowisko Linux/Unix admina. Szybko odkryłem, że odpowiedzi na pytanie &#8216;Co to jest Load Average&#8217; zaczynają być nie tyle nie trafione, co zabawne. Mało kto potrafił odpowiedzieć w taki sposób, żeby dało się wyczuć, że wie o czym mówi. Spróbuję więc wyjaśnić pokrótce co to jest.</p>
<p>Moja definicja tego parametru to: Średnia ilość procesów w kolejce do wykonania w okresie, odpowiednio 1, 5 i 15 minut. Innymi słowy, jest to miara obciążenia systemu procesami. Anglojęzyczni czytelnicy mogą również przeczytać definicję na <a href="http://en.wikipedia.org/wiki/Load_%28computing%29" target="_blank">wikipedii</a>.</p>
<p>Jak wiadomo, Unix jest systemem wielozadaniowym, czyli np. jest w stanie niby &#8216;jednocześnie&#8217; wykonywać kilka procesów. Jeśli tych procesów mamy kilka, to trafiają one do odpowiedniej kolejki (we FreeBSD nazywa się ona <em>runnable</em>) i stamtąd mechanizm zarządzania dostępem do zasobów (<em>sheduler</em>), decyduje który proces ma otrzymać czas procesora, a który ma czekać. Ilość procesów w tej kolejce mierzona jako średnia, w trzech wspomnianych okresach, jest właśnie wartością Load Average.</p>
<p>A co się dzieje w przypadku, gdy np. mamy kilka procesów, które chcą działać jednocześnie? To mi przypomina moje pytanie &#8216;pomocnicze&#8217; zadane jednemu z kandydatów:</p>
<ul>
<li>Ile procesów może działać jednocześnie na jednym procesorze, i do tego (jakby to miało jakiekolwiek znaczenie) 64 bitowym?</li>
<li>(chwila zastanowienia i pada odpowiedź) 1024!</li>
<li>Taaak? A dlaczego?</li>
<li>A nie, &#8230; (znów chwila zastanowienia): 4096!</li>
<li>Ok, przejdźmy do następnego pytania&#8230;</li>
</ul>
<p>Oczywiście nie da się na jednym procesorze (1 rdzeń, bez obsługi wielowątkowości i zakładamy że jest to &#8221;zwykły&#8217; procesor dla jasności) wykonywać jednocześnie kilku procesów. W danej chwili może działać co najwyżej jeden proces, a reszta czeka na swoją kolej.</p>
<p>Warto zdać sobie sprawę z faktu, że to, że proces istnieje w systemie, nie musi koniecznie oznaczać że ma on dostęp do zasobów (CPU). Weźmy np. uruchomiony proces serwera apache, wraz z procesami potomnymi. Jeśli nikt z niego nie korzysta, po prostu sobie jest, ale nic nie robi poza oczekiwaniem na żądania. Przykładowe procesy serwera nie znajdują się więc w kolejce do wykonania.</p>
<p>No dobrze, to teraz jaka wartość Load Averago to dużo? To oczywiście zależy ile mamy procesorów. Jeśli mamy 2 CPU a każdy po 4 rdzenie, to mamy w sumie tych rdzeni 8. W takim przypadku jeśli parametr LA dochodzi do wartości 8, to jest to wartość graniczna po której procesy nie będą działać optymalnie, ponieważ w danym przedziale czasu jest więcej procesów oczekujących na wykonanie niż dostępnych procesorów. Skutkiem tego będzie odbieranie dostępu do procesorów obecnie działającym procesom i przekazanie tego dostępu innym znajdującym się w kolejce do wykonania. Tak naprawdę, to trzeba jeszcze odliczyć trochę mocy na pracę samego systemu.</p>
<p>Na koniec ciekawostka: W Linuxie sprawa wygląda trochę inaczej niż we FreeBSD, a mianowicie proces który czeka na dane z podsystemu I/O też jest wliczany do  LA.  Z punktu widzenia procesu w Linuxie jest tak, że to przecież nie jego, tylko sytemu, wina że potrzebne do działania dane nie znajdują się jeszcze w pamięci i że gdyby nie to, to on już dawno jest gotowy do wykonania. Możemy zatem zaobserwować zjawisko, gdy procesor(y) będą nieobciążone, za to dyski będą skrzeczeć jak szalone i LA będzie wynosić 100, 200 a nawet więcej.</p>
]]></content:encoded>
			<wfw:commentRss>http://techblog.innervision.pl/2009/11/13/load-average-o-co-chodzi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

