Kam sa podela rýchlosť?

Je potrebný nástroj, ktorý dôslednejšie a podrobnejšie analyzuje výkon systému (tam sa vraj skrýva diabol). Zvážte aplikáciu, ktorá manipuluje s veľkou zbierkou súborov: konvenčné nástroje na výkon ukážu disk pri intenzívnom používaní a môže dokonca naznačovať, že problémom je diskový vstup/výstup, ale neukáže, či je chyba v konkrétnej aplikácii, a ak áno, ktorá časť to. Otvára aplikácia príliš veľa súborov alebo pristupuje k určitému súboru častejšie ako k iným? Tento štýl analýzy znamená, že musíme vidieť, čo sa deje pod kapotou aplikácie – aké súbory otvára a koľko údajov číta alebo zapisuje do každého z nich? Väčšina unixových systémov má aplikáciu s názvom „truss“, ktorá ukazuje, aké systémové volania aplikácia robí, ale tento druh informácií je príliš rozptýlený na to, aby bol veľmi užitočný.

Kam sa podela rýchlosť?

Dtrace

Moderný operačný systém, či už Windows alebo nejaký unixový variant, udržiava veľkú zbierku počítadiel o svojich rôznych operáciách. Tieto počítadlá používame na odhalenie externého výkonu systému, ale samotný operačný systém ich používa aj na prispôsobenie svojho správania. V operačnom systéme je vždy kľúčový komponent nazývaný plánovač, ktorý riadi, koľko času na procesoroch (alebo jadrách procesorov) dostane každý proces v porovnaní s ostatnými. Najprepracovanejšie z týchto modulov plánovania sú označované ako plánovače „fair share“, založené na súbore návrhových nápadov vyvinutých v 70. rokoch 20. storočia.

Problém plánovačov fair-share spočíva v tom, že plán, ktorý generujú, je založený na informáciách zhromaždených počítadlami, čo robí proces plánovania pomerne zložitým. Okrem aktualizácie svojich počítadiel musí operačný systém zvládnuť obrovské množstvo udalostí. Procesy ho neustále žiadajú, aby urobil niečo, ako je čítanie z disku, periférne zariadenia oznamujú, že to urobili niečo ako prenos bloku disku do hlavnej pamäte a interné rozhodnutia – ako napríklad ktorý proces spustiť ako ďalší – musia byť zadaný. Výkon stroja bude súvisieť s tým, ako sa tieto udalosti zoradia v čase s ohľadom na zmeny v počítadlách a pochopenie celej tejto sekvencie je prakticky nemožné. Vyžaduje sa iný prístup; menovite vypracovať teóriu fungovania systému a potom túto teóriu aplikovať na systém.

Vyžaduje si to proaktívnejšiu správu systému – správca systému už len nesedí a prezerá si stránky čísel a grafov, ale musí sa pokúsiť vyvinúť teóriu fungovania systému a potom ísť dokázať túto teóriu správne. Na svojej najvyššej úrovni a v najčistejšej forme je to jazyk na rozvíjanie a dokazovanie takýchto teórií.

Dtrace je práve taký programovací jazyk pre monitorovacie systémy. Myšlienka je, že keď systém beží, vykonáva akcie, ktoré generujú udalosti; dtrace je založený na myšlienke sond, ktoré slúžia na obsluhu týchto udalostí. Zjednodušene povedané, váš program dtrace vytvára sondy, ktoré sa spúšťajú vždy, keď nastane konkrétna udalosť a tieto sondy môžu hlásiť viac než len skutočnosť, že k udalosti došlo – môžu zbierať informácie o udalosť. V závislosti od monitorovanej sondy je možné vrátiť množstvo rôznych typov informácií. Ak napríklad skúmate systémové volanie, budú k dispozícii všetky argumenty tohto volania. Moduly jadra a niektoré ďalšie programy poskytujú sady testov, a preto sú známe ako poskytovatelia – program dtrace môže priradiť akcie k testom implementovaným poskytovateľmi.