![]() |
![]() |
|
| Condividi questo contenuto nei Social Network: |
|
Tweet |
|
|
|
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito. |
||||
|
|||||||||
Hey Amico Visitatore, Condividi con noi le tue idee e la tua conoscenza Aprendo una nuova discussione nella sezione Server |
|
|
LinkBack | Strumenti di discussione |
|
|
#1 (permalink) |
|
Banned
Data di registrazione: Mar 2009
Messaggi: 126
|
Limitare l'utilizzi della memoria SWAP o RAM a un programma in esecuzione
Ciao ragazzi,
ho visto che c'è un programma che limita l'utilizzo della CPU, e si chiama cpulimit. Ma non esiste invece un altro programma simile o impostazione, che però limiti al singolo programma di utilizzare oltre una certa quota massima di memoria impostata? Grazie in anticipo |
|
|
|
|
|
|
|
#2 (permalink) |
|
Moderatore
Data di registrazione: Apr 2005
Ubicazione: San Cipriano Beach
Messaggi: 4,443
|
Ovviamente esiste ed è ulimit http://ss64.com/bash/ulimit.html
C'è anche un metodo più complesso che è quello dei cgroups http://www.kernel.org/doc/Documentation/cgroups/cgroups.txt |
|
|
|
|
|
#3 (permalink) |
|
Banned
Data di registrazione: Mar 2009
Messaggi: 126
|
Non è possibile fare come cpulimit? cioè indico il processo a cui deve limitare l'uso di CPU? ulimit sembra ke lo termini il processo più che limitarlo, e poi non è che lo limita bene perchè si avviano 2 processi quando avvio questo programma, uno lo stoppa e l'altro abusa di memoria per conto suo, che comando devo dargli?
Ho gia provato ulimit -m 50000 (sarebbe 50MB), ma nn ha effetto su tutti e 2 i processi Oppure la seconda alternativa come posso fare a limitarlo a livello del kernel, ma vorrei che lo faccia solo per determinati processi! Puoi spiegarmi come fare a livello del kernel sia come consumo di CPU che di RAM? |
|
Ultima modifica di frank92 : 03-02-11 15:26. |
|
|
|
|
|
|
#5 (permalink) |
|
Banned
Data di registrazione: Mar 2009
Messaggi: 126
|
Come faccio ad usare i cgroups?
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? |
|
|
|
|
|
#9 (permalink) |
|
Banned
Data di registrazione: Mar 2009
Messaggi: 126
|
Puoi procurarmi uno script che ferma i processi che superano un certo limite di utilizzo della RAM?
Pseudo Linguaggio: Codice:
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
}
|
|
Ultima modifica di frank92 : 04-02-11 15:59. |
|
|
|
|