System load a multicore resp. hyperthreading, ako zistit 100% zatazenie?

Mam intelacke dvojjadro, kde su 2 virtualne jadra. Ked mi ukaze system load tak mi to bez na urovni 0,5...maximum sa beru 2 jadra, cize 2,0 alebo 4 jadra, cize 4,0?



ano ved tomu rozumiem, len otazka je ako to je s hyperhreadingom...

mam 2 jadrove CPU, vytazenie je 2,0, je zapnuty hyperhtreading - teda 4 jadra. Ak chcem dostat priemerne zatazenie jadra, tak delim 4 alebo len 2?
Podla toho co som si nacital by sa to malo delit len 2, lebo pri zapnuti hyperthreadingu vyrazne porastie len cpu treshold.

Takze pozriete cpu load a tam je 2,0...mate hyperthredingove 4 jadra, realne 2. Aby som dostal vytazenie jadra delim 4 alebo 2?

Ide mi o to, aby som vedel kedy CPU uz ide realne nad ramec maximalneho vykonu...

Záleží na okolnostech. Takže nejde říct.

Co z CPU ty procesy používají (jádro má různé počty výpočetních jednotek různých druhů)? Je tam nějaké IO (uvědom si, že ne všechny započítané procesy jsou CPU bound)? Synchronizace? Jde tu o propustnost nebo latenci? Atd.

Prostě si změř tu výkonnostní charakteristiku, co tě zajímá a empiricky vyber.

no je to tazko teraz, kedze neviem ci mam ratat s maximom: 2,0 alebo 4,0 co je este normalna hodnota..pre dane jadra...

nikto to neporovnaval ako to vychadza v realite? s hyper alebo bez hyperthreadingu?


DK

Dyt ti to tady pisou - zalezi na okolnostech, co ten procesor dela. Kazda aplikace ma jinou zatez. Server muze mit klidne load 60 a CPU se bude flakat, protoze IO bude pekelne pomale.

Pokud se jedna o monitoring, load neni uplne CPU-relevantni, ale spise ukazuje na kompletni zatez. CPU se bezne monitoruje tak, ze se ziska aktualni cislo "spotrebovaneho casu" (googlit CPU time), za chvili se provede to stejne a zjisti se rozdil mezi hodnotami - pro kazde CPU zvlast.

linux ukazuje HT jádra jako běžná.

Load na linuxu je velikost fronty, jak už tady zaznělo, neřiká ti, kvůli čemu je ta fronta takhle vysoká, běžný případ je, když se čeká na IO (disk, síť), fronta může být vysoká (vysoké číslo loadu) a přitom si bez problémů můžeš dělat matematické výpočty jako by nic.

Sten

Hyperthreading nejsou samostatná jádra, jsou to dvě sady registrů pro jedno jádro, a pokud určitá část jádra zrovna pro jednu sadu není potřeba, ale druhá by ji využila, použije se pro tu druhou. Takže záleží, co konkrétně to dělá, můžete mít load 2 a obě jádra plně vytížená, nebo 4 a obě jádra budou mít stále části, které se flákají a teoreticky by mohly zpracovávat další sady registrů.

Youda

Osobne typuju, ze max load bez IO waitu bude odpovidat poctu procesoru v /proc/cpuinfo
Takze 4.
Ale bude to zavadejici, protoze zatez na jednom core snizuje kapacitu hyperthread "virtualniho" core