Průvodce za Oponou

zatížení-výpočet průměru je nejlepší myšlenka jako klouzavý průměr ofprocesses v Linuxu je běh fronty označené běh nebo nepřerušitelný. Slova „myšlenka“ byla vybrána z nějakého důvodu: tak mají být opatření interpretována, ale ne přesně to, co se děje za nimi. Právě v tomto okamžiku na naší cestě se zdá, že realita itall, stejně jako mechanika equantum, neodpovídá intuitivnímu způsobu, jak se prezentuje.,

zátěžové průměry, které horní a uptime příkazy zobrazují, jsou přímo z /proc. Pokud používáte Linuxové jádro 2.4 nebo novější, Můžete si tyto hodnoty přečíst sami pomocí příkazu cat / proc / loadavg. Je to však jádro Linuxu, které produkuje tyhodnoty v / proc. Konkrétně timer.c a sched.h spolupracovat na výpočtu. Abychom pochopili, co časovač.c dělá pro bydlení, theconcept časového krájení a jiffy pult pomoci zaokrouhlit obraz.

v linuxovém jádře je každému expedovatelnému procesu přiděleno pevné množstvíčas na CPU na expedici., Ve výchozím nastavení je tato částka 10 milisekund nebo 1 / 100th sekundy. Pro toto krátké časové rozpětí je proces přiřazenfyzický procesor, na kterém lze spustit jeho pokyny a nechat si vzít overthat procesor. Více často než ne, proces se vzdá ovládánípřed 10ms jsou up prostřednictvím socket volání, i / o volání nebo volání zpětk jádru. (Na procesoru Intel 2.6 GHz je 10ms dostatek časupřibližně 50 milionů pokynů. To je více než dostzpracování času pro většinu aplikačních cyklů.,) V případě, že proces používá svůjplně přidělený čas CPU 10ms, přerušení je zvýšen hardware, a jádro získá kontrolu z procesu. Jádro pak promptlypenalizuje proces, že je takový prase. Jak můžete vidět, že timeslicing je důležitý designový koncept pro to,aby váš systém vypadal hladce zvenčí. Je to také vozidlo, které produkujeprůměrných hodnot.

časový řez 10ms je dostatečně důležitý koncept, který zaručuje aname pro sebe: kvantová hodnota., Není nutně anythinginherently speciální o 10ms, ale tam je o kvantové hodnoty obecné, protože bez ohledu na hodnotu, je nastaven na (to je konfigurovatelné,ale 10ms je default), to určuje, jak často na minimum kerneltakes kontrola systému zpět z aplikace. Jeden z manychores jádro provádí, když to trvá zpět kontrolu je incrementits jiffies counter. Počítadlo jiffies měří počet kvantum klíšťat, ke kterým došlo od zavedení systému. Když se objeví časovač quantum, časovač.c se zadává na funkci v jádru nazvanémtimer.,c:do_timer (). Zde jsou všechna přerušení zakázána, takže kód nenípracuje s pohyblivými cíli. V jednotkách jiffies čítače se zvýší o 1,a zatížení-výpočet průměru je kontroloval, jestli by to mělo být počítán.Ve skutečnosti, zatížení-průměrný výpočet je skutečně vypočtena nakaždá kvantové klíště, ale řídí proměnná hodnota, která je založena na theHZ nastavení frekvencí a testován na každém kvantové klíště. (HZ nemá být spojen s hodnocením procesoru MHz. Tato proměnná nastavuje pulserát konkrétní aktivity jádra Linuxu a 1Hz se ve výchozím nastavení rovná jednomu kvantovému or10ms.,) Ačkoli hodnota HZ může být nakonfigurována v některých verzích jádra, je obvykle nastavena na 100. Výpočtový kód používáhodnota HZ pro určení frekvence výpočtu. Konkrétně časovač.c: calc_load() funkce spustí algoritmus průměrování každých 5 * HZ, nebo zhruba každých pět sekund. Následuje tato funkce ve své funkci:

pole avenrun obsahuje tři průměry, o kterých jsme diskutovali. Funkce thecalc_load() se nazývá update_times (), také nalezený v časovači.c, a je Kód zodpovědný za napájení funkce calc_load () parametrem theticks., Bohužel tato funkce neodhalí jehonejzajímavější aspekt: samotný výpočet. To však může být snadno umístěno v schedu.h, hlavička používaná většinou jádra code.In tam je k dispozici makro CALC_LOAD a jeho přidružené hodnoty:

zde se pneumatiky setkávají s chodníkem. Nyní by mělo být zřejmé, že realita se nezdá, že by odpovídala iluzi. Alespoň, to rozhodně není typ průměrování většina z nás se učí v gradeschool. Ale přesto je to průměr., Technicky je to funkce exponentialdecay a je klouzavým průměrem volby pro většinu unixových systémůstejně jako Linux. Podívejme se na jeho detaily.

makro bere tři parametry: zatížení-průměr kbelíku (jeden ze tří prvků v avenrun), konstantní exponent a počet spuštění/nepřerušitelné procesy v současné době na útěku fronty. Konstanty exponentu jsou uvedeny výše: EXP_1 pro 1-minutový průměr, EXP_5 pro 5minutový průměr a EXP_15 pro 15minutový průměr. Důležitým bodem je, že hodnota klesás věkem., Konstanty jsou magická čísla, které se vypočítá themathematical funkce je uvedeno níže:

Když se x=1, pak y=1884; když x=5, y=2014; a když x=15, y=2037. Účelem magických čísel je to, že umožňuje makro CALC_LOAD používat přesné znázornění zlomků s pevným bodem. Magicnumbers pak nejsou nic jiného než multiplikátory používané proti průměru runningload, aby se z něj stal klouzavý průměr. (Matematicko-bodová reprezentace je nad rámec tohoto článku, takže nebudu vysvětlovat.,) Účel exponenciální funkce rozkladu spočívá v tom, že nejenže vyhlazuje poklesy a hroty udržováním užitečné linie, ale přesně snižuje kvalitu toho, co měří. Jak se čas pohybuje vpřed, postupně se zvyšují události CPU. jejich význam v průměru zatížení. To je to, co chceme, protoževíce Nedávná aktivita CPU má pravděpodobně větší dopad na současný stav než starověké události., Na konci, zatížení průměry dát smoothtrend od 15 minut přes aktuální minutu a dejte nám okno intonot pouze CPU, ale i průměrná poptávka po Procesorech. Vzhledem k tomu, že zatížení jde nad počet fyzických procesorů, čím více je CPU využíváno a tím větší je poptávka po něm. A jak ustupuje, tím méněz poptávky je. S tímto porozuměním může být průměr zatíženpoužívá se s procentem CPU k získání přesnějšího pohledu na aktivitu CPU.,

doufám, že to slouží nejen jako praktická interpretace průměrů zatížení Linuxu, ale také osvětluje některé temné matematické změny za nimi. Pro více informací, studie exponentialdecay funkce a její aplikace by vrhnout více světla na téma. Ale pro praktičtější, Vykreslování průměru zatížení. kontrolované počet procesů (to znamená, modelování účinků z CALC_LOAD algoritmu v kontrolovaném smyčky) by vám pocit, pro skutečná vztah a jak rozpadající se filtr vztahuje.

Articles

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *