Re: assegnare quantitativo di ram ad un processo
Alle lunedì 4 febbraio 2008, mortimer ha scritto: > Davide Mancusi ha scritto: > > mortimer ha scritto: > ho un processo (amule) che tende (in maniera non riproducibile) a memory > leak spaventosi, in pratica arriva ad occupare tutta la ram disponibile Questo dovrebbe funzionare, metti i valori che vuoi in sleep e nella quantità di swap che vuoi tenere libera; ovviamente cambia come ti serve il path ai file. Non è testato nel -15 per il restart e nel wait relativo. Non l'ho ancora visto in funzione a causa di amule, ma tant'è, in test funziona. Se può aiutarti a capire perché e come amule salta fai una mail in lista che magari se ne viene a capo. Ogni miglioramento (facile, visto la mia poca dimestichezza con bash) è ben gradito. #/bin/sh # ricorda che killall -15 amule wait swap_test=100 rm /home/alex/.aMule/*Lock amule & var1="c" while [ "$var1" = "c" ] do sleep 10 prova=$(free) echo $prova >> /home/alex/Desktop/loggo echo ' ' >> /home/alex/Desktop/loggo for swap_lev in $prova; do : done echo " \n/n" >> /home/alex/Desktop/loggo echo "$swap_lev $swap_test" >> /home/alex/Desktop/loggo echo " \n/n" >> /home/alex/Desktop/loggo ps -ef | grep /amule | grep -v grep >> /home/alex/Desktop/loggo if [ $swap_lev -lt $swap_test ];then echo ' ' >> /home/alex/Desktop/loggo echo "killo" >> /home/alex/Desktop/loggo echo ' ' >> /home/alex/Desktop/loggo killall -15 amule wait rm /home/alex/.aMule/*Lock echo "qui rilancio: " >> /home/alex/Desktop/loggo prova=$(free) echo $prova >> /home/alex/Desktop/loggo cp /home/alex/Desktop/loggo /home/alex/Desktop/loggo.crash #swap_test=100 amule & fi #((swap_test= swap_test + 10)) prova=$(tail --bytes=12000 /home/alex/Desktop/loggo) echo $prova > /home/alex/Desktop/loggo done exit 0
Re: assegnare quantitativo di ram ad un processo
Alle lunedì 4 febbraio 2008, mortimer ha scritto: > Davide Mancusi ha scritto: > > mortimer ha scritto: > ho un processo (amule) che tende (in maniera non riproducibile) a memory > leak spaventosi, in pratica arriva ad occupare tutta la ram disponibile Questo dovrebbe funzionare, metti i valori che vuoi in sleep e nella quantità di swap che vuoi tenere libera; ovviamente cambia come ti serve il path ai file. Non è testato nel -15 per il restart e nel wait relativo. Non l'ho ancora visto in funzione a causa di amule, ma tant'è, in test funziona. Se può aiutarti a capire perché e come amule salta fai una mail in lista che magari se ne viene a capo. Ogni miglioramento (facile, visto la mia poca dimestichezza con bash) è ben gradito. #/bin/sh # ricorda che killall -15 amule wait swap_test=100 rm /home/alex/.aMule/*Lock amule & var1="c" while [ "$var1" = "c" ] do sleep 10 prova=$(free) echo $prova >> /home/alex/Desktop/loggo echo ' ' >> /home/alex/Desktop/loggo for swap_lev in $prova; do : done echo " \n/n" >> /home/alex/Desktop/loggo echo "$swap_lev $swap_test" >> /home/alex/Desktop/loggo echo " \n/n" >> /home/alex/Desktop/loggo ps -ef | grep /amule | grep -v grep >> /home/alex/Desktop/loggo if [ $swap_lev -lt $swap_test ];then echo ' ' >> /home/alex/Desktop/loggo echo "killo" >> /home/alex/Desktop/loggo echo ' ' >> /home/alex/Desktop/loggo killall -15 amule wait rm /home/alex/.aMule/*Lock echo "qui rilancio: " >> /home/alex/Desktop/loggo prova=$(free) echo $prova >> /home/alex/Desktop/loggo cp /home/alex/Desktop/loggo /home/alex/Desktop/loggo.crash #swap_test=100 amule & fi #((swap_test= swap_test + 10)) prova=$(tail --bytes=12000 /home/alex/Desktop/loggo) echo $prova > /home/alex/Desktop/loggo done exit 0
Re: assegnare quantitativo di ram ad un processo
lunedì 04 febbraio 2008, alle 16:52, mortimer scrive: > c'è modo di modificare (o decidere a priori) la quantità di memoria > assegnata ad un processo? Può forse interessare questo articolo di Russell Coker (via Planet Debian), che parla di controllo delle risorse usando ulimits e altre cose: http://etbe.coker.com.au/2008/02/07/linux-resource-controls/ Magari non risponde esattamente alla domanda, ma mi pare comunque un buon articolo illustrativo (pur avendolo letto in fretta). Gabriele :-) -- http://poisson.phc.unipi.it/~stilli/ ICQ UIN: 159169930 [HT] Lothlorien F.C. (51042, IV.53) #156 Club dei Mille Meglio essere ottimisti e avere torto, che pessimisti e avere ragione [Albert Einstein] signature.asc Description: Digital signature
Re: assegnare quantitativo di ram ad un processo
Giovanni Mascellani wrote: All'incirca Tue, 05 Feb 2008 19:45:22 +0100, Davide Prina sembrerebbe aver scritto: 1) evitare che il processo, o parte di esso, sia sullo swap e debba Questo non è più o meno quello che fa memlockd? interessante ... non lo conoscevo Ciao Davide -- Dizionari: http://linguistico.sourceforge.net/wiki Sistema operativo: http://www.it.debian.org GNU/Linux User: 302090: http://counter.li.org Non autorizzo la memorizzazione del mio indirizzo su outlook
Re: assegnare quantitativo di ram ad un processo
All'incirca Tue, 5 Feb 2008 23:37:42 +0100, Mattia <[EMAIL PROTECTED]> sembrerebbe aver scritto: > Quello che dico è unicamente basato sulla mia personalissima > esperienza, quindi non ho prove ma è quello che ho notato: > dopo un uso prolungato di firefox, aprendo anche 50 schede insieme, > poi chiudendone alcune, aprendone altre, la ram (1GB) viene quasi > interamente occupata. > Chiudendo il browser, non tutta la ram viene rilasciata. > Questo può essere dovuto al fatto che non riavvio (quasi) mai il > computer, ma iberno quindi firefox rimane aperto per settimane. Mi verrebbero da pensare due possibili interpretazioni: 1) Firefox alloca in qualche modo dei buffer sul server X che poi lascia lì senza disallocarli. Ovviamente questi rimangono allocati finché non muore X. 2) Insieme a Firefox vengono caricate anche alcune librerie dinamiche che in qualche modo non vengono tirate via quando muore Firefox ma quando muore X. Gli "in qualche modo" testimoniano la mia ignoranza in merito di gestione della memoria, quindi rimetto da veridicità di queste mie ipotesi a qualcuno più saggio ed esperto di me... e come Mattia aspetto Firefox 3.0! :-) Giovanni. -- Giovanni Mascellani <[EMAIL PROTECTED]> Pisa, Italy Web: http://giomasce.altervista.org SIP: [EMAIL PROTECTED] Jabber: [EMAIL PROTECTED] / [EMAIL PROTECTED] GPG: 0x5F1FBF70 (FP: 1EB6 3D43 E201 4DDF 67BD 003F FCB0 BB5C 5F1F BF70) signature.asc Description: PGP signature
Re: assegnare quantitativo di ram ad un processo
On Tue, 5 Feb 2008 22:23:00 +0100 Giovanni Mascellani <[EMAIL PROTECTED]> wrote: > Ovviamente quando lo chiudi tutti i suoi segmenti privati sono > disallocati del sistema, quindi ovviamente recuperi tutta la memoria! Quello che dico è unicamente basato sulla mia personalissima esperienza, quindi non ho prove ma è quello che ho notato: dopo un uso prolungato di firefox, aprendo anche 50 schede insieme, poi chiudendone alcune, aprendone altre, la ram (1GB) viene quasi interamente occupata. Chiudendo il browser, non tutta la ram viene rilasciata. Questo può essere dovuto al fatto che non riavvio (quasi) mai il computer, ma iberno quindi firefox rimane aperto per settimane. Per carità, tutto si risolve riavviando xorg. Questo però non è necessario usando opera (di cui odio profondamente la gestione delle schede). A questo punto attendo con impazienza firefox 3.0, come suggerito da davide. Ciao a tutti, Mattia
Re: assegnare quantitativo di ram ad un processo
All'incirca Tue, 05 Feb 2008 19:45:22 +0100, Davide Prina <[EMAIL PROTECTED]> sembrerebbe aver scritto: > 1) evitare che il processo, o parte di esso, sia sullo swap e debba > aspettare di essere portato in RAM per la "sessione" di > esecuzione ... e questo potrebbe avvenire di frequente se "tutta" la > RAM è occupata dai processi o si è scelta una strategia che favorisce > l'uso dello swap 2) evitare che il processo attenda che parte della > RAM venga liberata (buttata sullo swap) per poter usarne una nuova > porzione Questo non è più o meno quello che fa memlockd? Giovanni. -- Giovanni Mascellani <[EMAIL PROTECTED]> Pisa, Italy Web: http://giomasce.altervista.org SIP: [EMAIL PROTECTED] Jabber: [EMAIL PROTECTED] / [EMAIL PROTECTED] GPG: 0x5F1FBF70 (FP: 1EB6 3D43 E201 4DDF 67BD 003F FCB0 BB5C 5F1F BF70) signature.asc Description: PGP signature
Re: assegnare quantitativo di ram ad un processo
All'incirca Tue, 05 Feb 2008 19:40:06 +0100, webnie <[EMAIL PROTECTED]> sembrerebbe aver scritto: > io uso iceweasel e non capisco quale sia questo problema della > memoria... > > prima di avviare iceweasel: > -/+ buffers/cache: 117984 918424 > > dopo averlo avviato e aver aperto una trentina di schede: > -/+ buffers/cache: 206916 829492 > > dopo averlo chiuso: > -/+ buffers/cache: 128148 908260 > > non è che forse possa essere qualche problema di sistema più che di > firefox o iceweasel ??? Non mi assumo la responsabilità di quello che dico, ma a quanto ne sapevo io il grande problema di Firefox/Iceweasel non era tanto il consumo di memoria in quanto tale, ma il fatto che alcune zone di memoria vengano allocate e poi perse senza essere disallocate (quindi non vengono più utilizzate, ma il sistema operativo non lo sa e non le dedica ad altri processi). Quindi il grosso consumo di memoria non lo vedi immediatamente, ma dopo tanto tempo che hai acceso il browser. Ovviamente quando lo chiudi tutti i suoi segmenti privati sono disallocati del sistema, quindi ovviamente recuperi tutta la memoria! Giovanni. -- Giovanni Mascellani <[EMAIL PROTECTED]> Pisa, Italy Web: http://giomasce.altervista.org SIP: [EMAIL PROTECTED] Jabber: [EMAIL PROTECTED] / [EMAIL PROTECTED] GPG: 0x5F1FBF70 (FP: 1EB6 3D43 E201 4DDF 67BD 003F FCB0 BB5C 5F1F BF70) signature.asc Description: PGP signature
Re: assegnare quantitativo di ram ad un processo
Ciao Mattia, e un saluto "firefoxiano" (non fantozziano) si estende a tutta la lista... : )) Mattia ha scritto: E magari fare in modo che quando il programma esce rilasci tutta la memoria che ha occupato. E' quello che sogno ormai da troppo tempo con firefox. N.B. questo non vuole essere un flame !!! io uso iceweasel e non capisco quale sia questo problema della memoria... prima di avviare iceweasel: [EMAIL PROTECTED]:~$ free total used free sharedbuffers ... ... -/+ buffers/cache: 117984 918424 dopo averlo avviato e aver aperto una trentina di schede: [EMAIL PROTECTED]:~$ free total used free sharedbuffers ... ... -/+ buffers/cache: 206916 829492 dopo averlo chiuso: [EMAIL PROTECTED]:~$ free total used free sharedbuffers ... ... -/+ buffers/cache: 128148 908260 non è che forse possa essere qualche problema di sistema più che di firefox o iceweasel ??? Vieri -- Per REVOCARE l'iscrizione alla lista, inviare un email a [EMAIL PROTECTED] con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a [EMAIL PROTECTED] To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: assegnare quantitativo di ram ad un processo
Giovanni Mascellani wrote: Ehm, che senso avrebbe assegnare un limite minimo allo spazio di memoria disponibile ad un processo? Un processo utilizza la memoria che si alloca, di più non saprebbe che farsene, o sbaglio io? Se sai quanta RAM ha bisogno o il minimo di RAM che ha bisogno, allora potrebbe essere importare tale limite minimo, perché potrebbe: 1) evitare che il processo, o parte di esso, sia sullo swap e debba aspettare di essere portato in RAM per la "sessione" di esecuzione ... e questo potrebbe avvenire di frequente se "tutta" la RAM è occupata dai processi o si è scelta una strategia che favorisce l'uso dello swap 2) evitare che il processo attenda che parte della RAM venga liberata (buttata sullo swap) per poter usarne una nuova porzione questo se il tuo processo è importante e vuoi che risponda sempre in maniera immediata ... naturalmente a scapito degli altri Ciao Davide -- Dizionari: http://linguistico.sourceforge.net/wiki Database: http://www.postgresql.org GNU/Linux User: 302090: http://counter.li.org Non autorizzo la memorizzazione del mio indirizzo su outlook
Re: assegnare quantitativo di ram ad un processo
Mattia wrote: E magari fare in modo che quando il programma esce rilasci tutta la memoria che ha occupato. E' quello che sogno ormai da troppo tempo con firefox. ho letto che con la versione 3.0 hanno risolto molti di questi problemi e la RAM occupata all'inizio è quasi la metà dell'attuale. La soluzione in questo caso potrebbe essere quella di provare la 3.0 Ciao Davide -- Dizionari: http://linguistico.sourceforge.net/wiki Sistema operativo: http://www.it.debian.org GNU/Linux User: 302090: http://counter.li.org Non autorizzo la memorizzazione del mio indirizzo su outlook
Re: assegnare quantitativo di ram ad un processo
On Mon, 04 Feb 2008 22:28:25 +0100 mortimer <[EMAIL PROTECTED]> wrote: > per questo mi stavo chiedendo se fosse possibile stabilire un tetto > massimo di memoria da assegnargli, in questo caso più di un tot non > potrebbe andare e, al massimo, "crasherebbe" di suo senza rallentare > troppo tutto il resto. E magari fare in modo che quando il programma esce rilasci tutta la memoria che ha occupato. E' quello che sogno ormai da troppo tempo con firefox. Mi interesserebbe anche a me una soluzione. A parte quelle ovvie come riavviare xorg. Mattia.
Re: assegnare quantitativo di ram ad un processo
Davide Mancusi ha scritto: mortimer ha scritto: c'è modo di modificare (o decidere a priori) la quantità di memoria assegnata ad un processo? Non ho niente da aggiungere alle risposte che hai già ricevuto in lista, ma sono solo curioso di sapere che problema stai cercando di risolvere. Magari c'è un'altra via... Ciao, Davide per prima cosa ringrazio tutti per la disponibilità e i preziosi consigli. riguardo al perchè della mia domanda è presto detto: ho un processo (amule) che tende (in maniera non riproducibile) a memory leak spaventosi, in pratica arriva ad occupare tutta la ram disponibile e, non contento, satura pure la partizione di swap, rendendo di fatto la macchina ingestibile, è necessario killare il processo avendo non poche noie vista la lentezza esasperante del sistema in quelle condizioni. per questo mi stavo chiedendo se fosse possibile stabilire un tetto massimo di memoria da assegnargli, in questo caso più di un tot non potrebbe andare e, al massimo, "crasherebbe" di suo senza rallentare troppo tutto il resto. grazie ancora a tutti. ciao -- Per REVOCARE l'iscrizione alla lista, inviare un email a [EMAIL PROTECTED] con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a [EMAIL PROTECTED] To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: assegnare quantitativo di ram ad un processo
Giovanni Mascellani ha scritto: c'è modo di modificare (o decidere a priori) la quantità di memoria assegnata ad un processo? interessante domanda. Sembra sia possibile impostare un limite superiore oltre quale il processo non può andare, ma non puoi assegnare anche un limite minimo. Ehm, che senso avrebbe assegnare un limite minimo allo spazio di memoria disponibile ad un processo? Un processo utilizza la memoria che si alloca, di più non saprebbe che farsene, o sbaglio io? Boh, per esempio immagina che il processo in questione è così importante una volta avviato che non vuoi assolutamente che vada in "out of memory". Gli riservi una certa quantità di memoria e risolvi il problema. Davide -- A tautology is a thing which is tautological. -- Time flies like an arrow. Fruit flies like a banana. -- Per REVOCARE l'iscrizione alla lista, inviare un email a [EMAIL PROTECTED] con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a [EMAIL PROTECTED] To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: assegnare quantitativo di ram ad un processo
mortimer ha scritto: c'è modo di modificare (o decidere a priori) la quantità di memoria assegnata ad un processo? Non ho niente da aggiungere alle risposte che hai già ricevuto in lista, ma sono solo curioso di sapere che problema stai cercando di risolvere. Magari c'è un'altra via... Ciao, Davide -- A tautology is a thing which is tautological. -- Time flies like an arrow. Fruit flies like a banana. -- Per REVOCARE l'iscrizione alla lista, inviare un email a [EMAIL PROTECTED] con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a [EMAIL PROTECTED] To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: assegnare quantitativo di ram ad un processo
All'incirca Mon, 04 Feb 2008 21:19:00 +0100, Davide Prina <[EMAIL PROTECTED]> sembrerebbe aver scritto: > mortimer wrote: > > > c'è modo di modificare (o decidere a priori) la quantità di memoria > > assegnata ad un processo? > > interessante domanda. > > Sembra sia possibile impostare un limite superiore oltre quale il > processo non può andare, ma non puoi assegnare anche un limite minimo. Ehm, che senso avrebbe assegnare un limite minimo allo spazio di memoria disponibile ad un processo? Un processo utilizza la memoria che si alloca, di più non saprebbe che farsene, o sbaglio io? Giovanni. -- Giovanni Mascellani <[EMAIL PROTECTED]> Pisa, Italy Web: http://giomasce.altervista.org SIP: [EMAIL PROTECTED] Jabber: [EMAIL PROTECTED] / [EMAIL PROTECTED] GPG: 0x5F1FBF70 (FP: 1EB6 3D43 E201 4DDF 67BD 003F FCB0 BB5C 5F1F BF70) signature.asc Description: PGP signature
Re: assegnare quantitativo di ram ad un processo
mortimer wrote: c'è modo di modificare (o decidere a priori) la quantità di memoria assegnata ad un processo? interessante domanda. Sembra sia possibile impostare un limite superiore oltre quale il processo non può andare, ma non puoi assegnare anche un limite minimo. Cercando ho trovato: 0) uso di ulimit (come ti hanno già consigliato) in pratica assegni ad una shell e ai processi che avvia dei massimi sulle risorse che può utilizzare per vedere l'impostazione della shell attuale $ ulimit -a per saperne di più $ man bash e cerchi ulimit l'opzione che può interessarti è -m (per RAM) e magari anche -v (per la memoria virtuale) - 1) impostazione dei limiti per un dato utente /etc/security/limits.conf questo è simile al punto 1, solo che riguarda tutti i processi di quell'utente $ man limits.conf - 2) librerie C/C++ getrlimit, setrlimit idem come punto 1 $ man getrlimit --- 3) usare un vserver e usare il comando vlimit per impostare i limiti delle risorse Non conoscevo questo vserver ... è davvero interessante, è un concetto diverso da qemu & C. (macchine virtuali) e xen & C. (paravirtualizzazione). http://linux-vserver.org $ apt-cache search vserver Ciao Davide -- Dizionari: http://linguistico.sourceforge.net/wiki Fate una prova di guida ... e tenetevi la macchina!: http://linguistico.sf.net/wiki/doku.php?id=usaooo2 Non autorizzo la memorizzazione del mio indirizzo su outlook
Re: assegnare quantitativo di ram ad un processo
On lun, 2008-02-04 at 16:52 +0100, mortimer wrote: > c'è modo di modificare (o decidere a priori) la quantità di memoria > assegnata ad un processo? > > se non sbaglio agire sul nice del processo coinvolge solo il > quantitativo di cicli cpu. Non l'ho mai usato, ma ulimit e` fatto apposta per limitare le risorse di un utente. Non so se possa agire a livello di singolo processo, ma magari puoi lanciare il processo coi permessi di un utente apposito (e quindi col suo ulimit). Bye. -- Alessandro Pellizzari -- Per REVOCARE l'iscrizione alla lista, inviare un email a [EMAIL PROTECTED] con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a [EMAIL PROTECTED] To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: assegnare quantitativo di ram ad un processo
mortimer wrote: c'è modo di modificare (o decidere a priori) la quantità di memoria assegnata ad un processo? Spero che qualcuno in lista ti dia una risposta piu' efficiente in termini di prestazioni e meno macchinosa (magari esiste un moduletto apposito del kernel di cui io non sono a conoscenza). L'unica soluzione che mi verrebbe in mente e' di far partire il processo dentro una macchina virtuale (tipo qemu) assegnando come massima quantita' di memoria quella che desideri. Ciao, C. -- Per REVOCARE l'iscrizione alla lista, inviare un email a [EMAIL PROTECTED] con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a [EMAIL PROTECTED] To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: assegnare quantitativo di ram ad un processo
Il Monday 04 February 2008 16:52:07 mortimer ha scritto: > salve a tutt* > > c'è modo di modificare (o decidere a priori) la quantità di memoria > assegnata ad un processo? > > se non sbaglio agire sul nice del processo coinvolge solo il > quantitativo di cicli cpu. > > grazie anticipatamente per l'attenzione. > > ciao Così a naso direi... riscrivere il kernel :D Non so, ma credo che di quelle cosette lì se ne occupi Lui, e l'utente non possa fare nulla. Sbaglio? ciao Francesco