Re: OT: malloc [era: Re: OT Squid]
On Fri, Jan 18, 2002 at 01:27:49AM +0100, Daniele Cruciani wrote:
> On Thu, Jan 17, 2002 at 09:42:35PM +0100, Samu wrote:
> > no che centra ?
> > qui si parla di strategie di allocazione per evitare di avere la memoria
> > frammentata e che quindi risulti + piena di quello che e' ... tutto
> > qua.
>
> ?? non ho capito niente,
grazie :-))
> comunque la frammentazione c'e' se si chiama
> una free() non una malloc()
non necessariamente, specie in un contesto multitasking ....
per il tuo processo che fa una malloc ci sono due processi che fanno
una free o viceversa ... in questo contesto la frammentazione
capita molto spesso .
> > beh se la strategia di allocazione e' buona serve abbastanza
>
> bisognerebbe mettersi tutti daccordo:
>
> - processi A,B vede 10M liberi.
>
> - processi A,B alloca 2M.
>
> va bene, ma se i processi sono 6 o 15 o 100?
si procede col riempire tutta la memoria virtuale (quindi ram e swap)
quando tutto e' pieno ... inizi a trovarti scritto
"Resource temporarily unavailable" e il kernel parte con la "roulette russa"
e ammazza processi a caso (non sono sicuro se a caso comunque li vedi su
console)
>
> Se le cose stanno cosi' penso che la cosa migliore per servizi critici
> sia di avere server dedicati che fanno poco piu' di una cosa e non
> occupano mai piu' (100-((max_lung_blocco)*nserver)/sysmem)% di
> memoria,
beh questo e' lapalissiano :-))
> dove max_lung_blocco e' la lunghezza massima di un blocco
> allocato da un qualunque processo, nserver e' il numero di processi
> che possono allocare memoria (10 dovrebbe andare) e sysmem e'
> ovviamente la memoria totale. Questa e' la strategia buona?
e' una strategia ... adottata anche tramite ulimit
ps. se non mi capisci stavolta mi arrabbio :-)))
ciao
Samuele
--
Samuele Tonon <samu@linuxasylum.net> http://www.linuxasylum.net/~samu/
Acid -- better living through chemistry.
Timothy Leary
Reply to: