[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: OT: malloc [era: Re: OT Squid]



On Thu, Jan 17, 2002 at 09:42:35PM +0100, Samu wrote:
> On Thu, Jan 17, 2002 at 06:18:07PM +0100, Daniele Cruciani wrote:
> > Approposito di memoria ho trovato questo in malloc(3):
> > 
> >        Linux follows an optimistic memory allocation strategy.  This
> >        means that when malloc() returns non-NULL there is no guarantee
> >        that the memory really is available.  In case it turns out that
> >        the system is out of memory, one or more processes will be
> >        killed by the infamous OOM killer.
> > 
> > Questo significa che e' persino inutile testare malloc() == NULL ?
> 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, comunque la frammentazione c'e' se si chiama
una free() non una malloc()

> 
> > Vale pure per posix_memalign? (nel man non c'e')
> > Come si scrive qualcosa _garantito_ contro gli out of memory ?
> > penso che testare quanta memoria e' libera valga a poco in un sistema
> > multi tasking.
> 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?

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, 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?


Daniele



Reply to: