dubbio su ulimit

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
syaochan
Linux 3.x
Linux 3.x
Messaggi: 659
Iscritto il: dom 9 mag 2004, 0:00
Nome Cognome: Christian
Slackware: current 64
Kernel: 2.6.38.7
Desktop: KDE 4.5.5
Contatta:

dubbio su ulimit

Messaggio da syaochan »

Ciao a tutti, mi è venuto un dubbio su ulimit. Se limito la resident set size in una shell e poi da questa lancio due processi, il limite sarà per ogni processo oppure per tutti insieme?
Cioè se il limite è 100 ogni processo potrà occupare 100 oppure tutti i figli di quella shell potranno occupare 100, sommando le rispettive quote?
Se dovrebbe funzionare come nel secondo caso, allora ho qualcosa che non va :?
Infatti con ulimit -m 300000 ho due processi che occupano 97484 e 231620
Se il funzionamento corretto fosse il primo, come faccio ad ottenere quello che speravo che fosse (cioè il secondo)?
Grazie!
Ciao
C.

Avatar utente
masalapianta
Iper Master
Iper Master
Messaggi: 2775
Iscritto il: lun 25 lug 2005, 0:00
Nome Cognome: famoso porco
Kernel: uname -r
Desktop: awesome
Distribuzione: Debian
Località: Roma
Contatta:

Messaggio da masalapianta »

devi limitare anche la virtual memory (ulimit -v), altrimenti il limite impostato viene superato spostando pagine nella partizione di swap:
$ ulimit -m 50144
$ ./malloc
ale 3217 48.3 79.6 410020 397900 pts/6 D+ 12:20 0:01 ./malloc
$ ulimit -v 50144
$ ./malloc
ale 3298 61.5 9.7 50056 48916 pts/6 R+ 12:26 0:01 ./malloc

Avatar utente
syaochan
Linux 3.x
Linux 3.x
Messaggi: 659
Iscritto il: dom 9 mag 2004, 0:00
Nome Cognome: Christian
Slackware: current 64
Kernel: 2.6.38.7
Desktop: KDE 4.5.5
Contatta:

Messaggio da syaochan »

Grazie per la risposta. Purtroppo ho scoperto che non posso limitare la virtual memory per un problema di wine (che non è proprio di wine però, i dettagli qui)... qualche altra idea per evitare di trovarmi di tanto in tanto il PC piantato per scarsità di memoria?
Ciao
C.

Avatar utente
masalapianta
Iper Master
Iper Master
Messaggi: 2775
Iscritto il: lun 25 lug 2005, 0:00
Nome Cognome: famoso porco
Kernel: uname -r
Desktop: awesome
Distribuzione: Debian
Località: Roma
Contatta:

Messaggio da masalapianta »

syaochan ha scritto:Grazie per la risposta. Purtroppo ho scoperto che non posso limitare la virtual memory per un problema di wine (che non è proprio di wine però, i dettagli qui)... qualche altra idea per evitare di trovarmi di tanto in tanto il PC piantato per scarsità di memoria?
linux per limitare le risorse dei processi mette a disposizione setrlimit() (man 2 setrlimit), se non vuoi usarla (via ulimit o in qualsiasi altro modo) puoi usare altre implementazioni di resource limiting (in giro mi pare d'aver visto qualche kernel patch), ma non cambierebbe nulla, in quanto, da quel che leggo nel link da te postato (non conosco e non ho mai usato wine, quindi prendo per buono quel che si dice in quella pagina web), il problema e' che wine alloca subito tutta la ram che potrebbe servirgli e poi se la gestisce lui, quindi ti ritorna quell'errore se non riesce subito ad allocarla; ovviamente questo ti sega le gambe perche' e' irrilevante quale sistema di resource limiting usi, visto che il fatto stesso di limitargli la memoria allocabile (e non come viene limitata) causa il problema.
Detto questo le possibilita' son due:
1) compri altra ram
2) sostituisci con qualche soluzione nativa i software win32 che usi con wine

Rispondi