Előfordulhat az a helyzet, hogy tök gyors a laptopod, és elindítasz valamilyen CPU zabáló programot. Ilyenkor nyilván, hogy gyorsan befejeződjön a feladat, az OS csak ezzel foglalkozik és a program processzorhasznála felmegy 90-100%-ra. Ha nem szeretnéd, hogy ez megtörténjen, mert pl:
- nem szereted, ha melegedik a géped
- spórolnál az akksival
- nem szeretnéd, hogy más program belassuljon
akkor ez a kis Bash script neked való. Annyit csinál, hogy korlátozza a processzorhasználatát a megadott folyamatnak.
Működése: A Unix alapú rendszerekben a folyamatok kommunikációja üzenetek küldözgetésével történik. Van 2 speciális üzenet amit az OS küld a folyamatnak, de akár te is elküldhetsz:
- SIGSTOP: szünetelteti a folyamatot
- SIGCONT: folytatja a szüneteltetett folyamatot
Ha van egy 100% processzorhasználattal rendelkező folyamatod, és azt pl le akarod 66%-ra vinni, akkor annyit csinálsz, hogy folyamatosan (periodikusan):
- küldesz neki egy SIGSTOP jelet, vársz X időt,
- utána küldesz neki egy SIGCONT jelet és vársz 2*X időt.
Így a folyamat 1/3 ideig áll, 2/3 ideig fut tehát a processzorhasználata 66% lesz. Erre alapul ez a kis Bash script is.
Pontosabban dinamikusan állítja az X várakozási időt úgy, hogy a processzorhasználat a megadott % körül ingadozzon. Ha látja, hogy a processzorhasználat magas, akkor addig növeli a várakozási időt, amíg a megadott % alá nem esik. Ha látja, hogy a processzorhasználat kicsi, akkor addig csökkenti X-et, amíg kb a megadott % nem lesz a processzorhasználat.
Igen, a neten már évek óta van egy hasonló projekt: cpulimit ami elvileg ugyanezt a módszert alkalmazza, de ez az én kis projektem, ami OSX-en biztosan működik és csak 80 sor. Elvileg Linux alatt is működik.
A script úgy működik, hogy meg kell adnod paraméterként egy folyamatazonosító számot (PID) és egy százalékot. Például:
./cpu_limiter.sh 1234 50
Ami az 1234 azonosítóval rendelkező folyamatot 50%-ra korlátozza. A folyamatazonosítót a Terminálból nézheted ki a top parancs kiadásával ami kilistázza az aktuálisan futó folyamtokat és adataikat
A bejegyzés trackback címe:
Kommentek:
A hozzászólások a vonatkozó jogszabályok értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a Felhasználási feltételekben és az adatvédelmi tájékoztatóban.
Hóhér az utolsó barátod · http://internetszemete.blog.hu 2015.09.22. 17:12:10
Ez a megoldás számomra nem túl szimpatikus. (Külső programtól függ a korlátozott program korlátja)