Minulla on ohjelma, joka välillä nappaa 100% prossutehoja minuutinkin ajan. Silloin kone tahmaa pahasti ja muistia kuluu. Ohjelmaa ei saa tällöin katkaistua vaan se lopulta kaatuu virheeseen. Saisiko tuota jotenkin rajoitettua? Ts. asetetaan ohjelma karsinaan, mistä ei pääse enää ylemmäs tehonsyönssissä/muistin käytössä?
Kuinka rajoittaa ohjelman saamaa suoritustehoa?
possu_syö_liikaa
6<50
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 6
Vanhimmat
Prosessori toimii niin, että se on joko 100% kuormalla tai ei ollenkaan käytössä. "nice" komennolla voi priorisoida nokkimisjärjestystä, että prosessoriaika menee ensisijaisesti muualle.
Muistinrajoittamista sitten tehdään ajoympäristöillä ja virtualisoinnilla. Esim. Javassa saa rajoitettua muistin käyttöä, selaimessakin oli Javascriptille rajoitinta ja jne. tai sitten vaan virtuaalikone.
Ubuntussa ainakin avaamalla "Järjestelmän valvonta" ja oikealla klikkaaminen prosessia antaa prosessin prioriteetille 6 eri vaihtoehtoa.
Mites tuo cpulimit?
https://www.digitalocean.com/community/tutorials/how-to-limit-cpu-usage-on-ubuntu-12-10
En ole kokeillut, mutta luulisit, että ulimitillä saa säädettyä muistin määrää. Komennolla timeout saat katkaistua ohjelman tietyn ajan jälkeen, ja olen käyttänyt tätä omien ohjelmien testailussa, kun olen joutunut ikiluuppiin. Jos kyse on avoimen lähdekoodin ohjelmasta, niin ehkä voi koettaa jotenkin muuten debugata ohjelmaa.
Juuh, tuo ulimit oli se, mitä muistelin jostakin kaukaisilta vuosilta. Mutta nythän se hoitui noilla aiemmin mainituillakin! Sain myös vinkkiä, että voisi asettaa käyttäjän käytössä olevan muisti quotan pienemmäksi, jolloin se ohjelma kaatuisi nopeammin - miten se sitten tehdäänkään. Niin, ihan vaan selain-pluginista kyse - enkä tiedä mistä - se joutuu joskus ikuiseen looppiin ja hyydyttää selaimenkin..
Auttaisiko joku näistä: http://unix.stackexchange.com/questions/1424/is-there-a-way-to-limit-the-amount-of-memory-a-particular-process-can-use-in-uni