[linux] Re: pmap

Daniel C. von Asmuth asmuth op bakunin.xs4all.nl
Do Jun 29 20:52:57 CEST 2006


Aldus schreef Roeland Th. Jansen op Thu, Jun 29, 2006 at 07:01:58PM +0200:
> On Wed, Jun 28, 2006 at 09:25:06PM +0200, Daniel C. von Asmuth wrote:
> > Wat ik gehoord heb, is dat de heap wordt beheerd door de C library,
> > die stukjes uitdeelt aan funkties die malloc() aanroepen totdat de 
> > applicatie ze retourneert door free() aan te roepen. Als er veel malloc()
> > wordt aangeroepen dan raakt de heap natuurlijk op, maar de library doet
> > dan een sbrk() system call om het besturingssysteem om meer memory te 
> > vragen. De heap zal echter gefragmenteerd raken door onvoorspelbare free() 
> > aanroepen, zodat de heap nooit krimpt. Utilities als 'ps' geven ruwweg
> > aan hoeveel geheugen aan een proces is toegewezen.  Uiteraard kan een 
> > moderne kernel een stuk geheugen aan meerdere programma's tegelijk
> > toewijzen (bijv. voor shared libraries).
> 
> tenzij het de laatste jaren veranderd is, werkt het idd zo. in de pe1chl
> sourcecode van ka9q's NOS zie je dat ook terugkomen. Daar had je ook het
> probleem dat sommige compilers niet meer dan 64k heap konden maken.
> altijd leuk voor een vroege of late dood van het network OS.
> 
> De vraag blijft trouwens nog steeds -- waarom maakt de klant zich druk
> om deze getallen. komen er allocation problemen ? memory op ? swapt het
> systeem zich dood ? (komt ook vaak door de idioot grote swapspaces die
> sommigen nog steeds maken)

Swappen leidt tot een sterke teruggang van de performance van een systeem 
en als de swap space vol is dan zal het systeem vast lopen (sommige pinguin-
vormige OSsen gaan dan processen killen om een algehele crash te voorkomen).

Ik heb eens een geheugen lekkende applicatie gestopt door voor elke malloc()
en free() het geheugenadres naar een log file te schrijven en dan te kijken
welk aangevraagde geheugenlokaties niet meer werden vrijgegeven. Het alter-
natief is regelmatig rebooten.

Suc6,


Daniel

-- 
      _----_
     /      >
    < intel/
     \      Lag behind
      \____/ 



More information about the Linux mailing list