Megoldások IT problémákra!

Linux / OSX: CPU használat korlátozó (Bash script)

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:

https://nerd.blog.hu/api/trackback/id/tr457809004

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

Azért nézz utána olyan dolgoknak is, mint a nice, cgroups...
Ez a megoldás számomra nem túl szimpatikus. (Külső programtól függ a korlátozott program korlátja)

Gerilgfx 2015.09.28. 01:29:18

azzal spórolsz leginkább az akksival, ha hagyod a procit maximumon tekerni a folyamat befejezéséhez. félgőzön járatva a procit majdnem annyit fogyaszt, mint maxon. a processzornak fogyasztás szempontjából két optimális állapota van. az egyik az, ha nem csinál kvázi semmit, a másik pedig az, ha minden mag 100%-on pörög. minden más egyéb csak pazarolja az akksid.

GABOR2 2015.09.29. 15:45:59

A mai többmagos prociknál már ez nem annyira probléma... Én ritkán találkozok vele. Azért kösz az infót.

Nerd blog!

Ezen az oldalon gyűjtöm az elém került informatikai problémákra talált megoldásokat, hátha másnak is hasznos! Ha itt végeztél kikapcsolódás képpen nézd meg a másik blogomat is: NapiGeek blog. DE TÉNYEG, OKÉ?


Címkék

10.10 (2) 10.9 (2) 7 (2) 7zip (2) 8 (2) a (2) adblock (2) agyhalott (2) alert (2) alkalmazás (3) allegro (2) android (4) animált (2) app (4) apple (17) archivum (2) atom (3) átverés (2) audio (3) bash (3) beállítás (4) beállítások (6) betűméret (3) billentyűkombináció (4) billentyűparancs (3) billentyűzet (2) bin (2) biztonság (2) blog (45) böngésző (9) box (2) cascaded (2) codeblocks (5) command (2) command line (3) crack (2) crash (2) cron (3) crontab (4) css (9) date (4) dátum (3) digitális analfabéta (2) disable (2) disk (3) div (2) drive (2) drugs bunny (2) editor (2) ellenőrzés (2) email (2) error (3) exe (2) facebook (8) fájlméret (2) fájlrendszer (2) faszbúk (4) fb (2) feed (3) feladatkezelő (2) felbontás (2) felcsatol (2) fix (2) folder (2) formázás (2) fos (5) fostalicska (2) geek (2) generálás (2) git (2) google (2) google drive (2) gps (2) graph (2) gzip (2) hack (6) hálózat (2) hang (3) háttér (3) háttérkép (2) hdd (2) header (2) helyesírás (2) hiba (3) hogyan (8) how to (2) hozzászólás (2) html (8) hu (2) id (2) időzített (2) image (2) img (2) ingyen (7) injection (2) internet (5) iphone (3) iso (3) javascript (7) kaki (2) kép (5) kikapcsol (4) kikapcsolás (2) kliens (2) kód (2) konvertálás (2) lájk (2) lekérése (2) lemezkép (2) leopard (5) letöltés (3) like (2) link (4) linux (10) lion (7) lista (2) lock (2) log (2) mac (22) macbook (7) macbook pro (4) magyar (3) magyarország (2) mavericks (5) mdf (3) mds (3) mentés (2) mini (2) mobilinternet (2) monitor (2) mount (4) mountain (3) mp4 (2) működik (2) mysql (4) nélkül (3) nem (5) nerd (47) okostelefon (2) olcsó (2) oldal (6) online (2) openoffice (3) osx (36) parancssor (5) password (2) pdf (3) php (14) plugin (4) png (3) program (2) programozás (8) rar (2) régi (2) rendszer (3) repair (2) retardált (2) rss (3) safari (3) script (2) sebesség (2) sheet (2) shell script (2) sleep (2) snow (3) sok (2) stíluslap (5) style (2) stylesheet (2) szar (5) szűrő (2) tar (2) telefon (2) telepítés (4) terminal (5) test (2) teszt (3) time (4) tömörítés (4) tor (2) törlés (2) truecrypt (2) trükk (2) túl (2) ubuntu (3) újraindítás (2) unix (5) unlimited (2) url (3) ventillátor (2) version (2) video (3) virtualbox (2) warning (2) webfejlesztés (2) weboldal (6) widget (2) windows (10) windows 10 (2) windows 7 (2) windows 8 (2) windows xp (2) xcode (2) yosemite (4) youtube (7) zip (2) zoom (2) Címkefelhő

Statisztika

süti beállítások módosítása