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: