CPU stressteszt

Fórumok

Hali,

Egy olyan programra lenne szükségem, ami egy %-ban megadott load-ot (CPU) generál. Tehát valami ilyesmire gondoltam:

$generate_load -load 40% -timeot XYmin (40%-on terheli a procit X ideig).
Ha lehetséges Windows-ra is Linux-re is kellene egyaránt. Ha végképp nem találok semmit, akkor lehet nekiállok és megírom ( esetleg ötleteket, tanácsokat várnék tőletek ).

Előre is köszönöm a segítséget.

Üdv

Hozzászólások

Az ultimate boot cd -n nézz szét
----
概略情報

Nem vagyok benne biztos, hogy ilyet fogsz tudni írni.
Mégpedig azért nem, mert az adott kód CPU használata rengeteg dologtól függ. Ha nem egyedül ő fut, hanem egy másik program is mellette, nem is gondolnád, mennyire be tud kavarni. Például mikor a memóriára vár a CPU, vagy ha egy másik futó program miatt kiszorul a te terhelő programod a CPU cacheéből, marhára nem ugyanazt a loadot fogja generálni, mint ha egyébként üresjáratban menne a gép.

van erre windows nt (server v. workstatoion nemtom pontosan) resource kit-ben 1 cpustres(s).exe az kb 5%-10%-40%-80-100 arányban tud dolgoztatni 1 gépet. Ha semmi nem terheli a gépet, ez kb. egyenletes érték fog maradni. Beszerzése macerás, mindenhonnan töröltette már az MS, az okát ne kérdezd. Nekem megvan vhol, de arra várnod kell v. 2 hetet h. el tudjam küldeni. Én is azért spájzoltam be, mert égen földön ez volt az egyetlen ilyen tudású tool.

az a processz, ami nem hajtja ki 100%-ra a cpu-t, valamire var.
diszkre, networkre, billentyuzetre, idozitesre..
ha szeretnel egy x% -ot, azt csak ugy lehet elerni, ha a masodpercet felosztod valamennyi reszre, es egyes reszekben csutkara kihajod a cpu-t, mas reszekben meg hagyod pihenni.
Ha egy for(;;){ random(a); usleep(c);} ciklust gyartasz, akkor nagyon nehez beloni, hogy mi is legyen az a c. Inkabb ugy lehetne, hogy timer interruptot vesznek fel, ami masodpercenkent valahanyszor (pl 100-szor) beszol a proginak, es ebbol x esetben busy looppal varsz a kovetkezore, 100-x esetben (egyenletesen elosztva a 100-ban) valami oprendszer varo funkcioval varsz a kovetkezo timer interruptra.
sajnos ezt csak VMS alatt tudnam beprogramozni, azzal meg semmire se mesz.

Lehet, hogy hülyeség, de megfelelő forrás esetén az mplayert talán lehet úgy paraméterezni, hogy egyenletes processzorterhelést okozzon. Főleg, ha a forrás konstans vagy rövid periódusokban ismétlődő anyagot tartalmaz.

:)

cpulimit

Egyébként egy nagyon ronda hack, de erre akár jó is lehet.

Írj egy üres, végtelen ciklust C-ben. Az

ulimit -t

-vel be tudod állítani, mennyi CPU idő elfogyasztása után lője ki a kernel (generáljon számára SIGXCPU-t). Például ha 20%-on akarsz pörögni 1 percig, akkor az 60 mp * 20% = 12 mp CPU idő.

$ (ulimit -t 12 && cpulimit -P ./porog -z -l 20)

Vagy valami ilyesmi.