- Home
- Categorie
- Coding e Sistemistica
- Hosting, Server e Domini
- Limitare l'utilizzi della memoria SWAP o RAM a un programma in esecuzione
-
L'unico modo è sfruttare i cgroups. Ho visto che esiste un programma chiamato rlimit ma non so fino a che punto funziona.
-
Come faccio ad usare i cgroups?
Facciamo conto che abbiamo un programma binario avviato come root, come devo settare questi cgroups in modo che questo programma:
- Non superi il 20% di CPU
- Non superi oltre 80 MB di RAM
Come devo fare a settare questi cgroups?
-
Dipende dalla distribuzione. Ti consiglio di dare un'occhiata qui http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/ch01.html
-
@paolino said:
Dipende dalla distribuzione. Ti consiglio di dare un'occhiata qui http : / / docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/ch01.html
La distribuzione è Debian 5 x64
-
-
Puoi procurarmi uno script che ferma i processi che superano un certo limite di utilizzo della RAM?
Pseudo Linguaggio:
varPROG = "prog.bin"; ciclo{ if(varPROG è in esecuzione) { varPID = PID(varPROG); // estrai PID del programma varMEM = RAM(varPID); // estrai variabile di utilizzo di memoria da parte del PID if (varMEM => "5") { // se maggiore del 5% dell'utilizzo kill - 9 varPID; // ferma il programma con tale PID } } sleep(7); // In pausa per 7 secondi }
-
Non ho trovato nulla di già pronto online. Comunque per conoscere lo stato di un processo, devi leggere /proc/<pid-del-processo>/status
-
Con ulimit posso limitare anche l'utilizzo della CPU?
Per esempio per limitare l'utilizzo della cpu con ulimit a 20% come faccio?
-
ulimit -t XXX
-
Facendo ulimit -t 20, limiterà i processi a un consumo massimo del 20% della CPU?
-
Si