Date: Mon, 30 Jul 2012 14:22:09 -0400 From: John Baldwin <jhb@freebsd.org> To: freebsd-embedded@freebsd.org Cc: Aleksandr Rybalko <ray@freebsd.org>, jasone@freebsd.org Subject: Re: jemalloc vs old allocator Message-ID: <201207301422.10029.jhb@freebsd.org> In-Reply-To: <20120730113418.97694fdf.ray@freebsd.org> References: <20120726143551.b2b0ce30.ray@freebsd.org> <CAJ-Vmo=NApROEYSBL_A1HFci3WTPgDAmjajnXRJeOBpSWpNtsA@mail.gmail.com> <20120730113418.97694fdf.ray@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Monday, July 30, 2012 4:34:18 am Aleksandr Rybalko wrote: > On Fri, 27 Jul 2012 10:04:27 -0700 > Adrian Chadd <adrian@freebsd.org> wrote: > > >> Just as a note, ray@ compared jemalloc-HEAD with an older jemalloc. > >> > >> I've just asked him to compare it to phkmalloc from -8. He'll > >> hopefully post those results soon. > >> > >> Still, great work. :) > >> > >> > >> > >> Adrian > >> > >> > >> On 26 July 2012 04:35, Aleksandr Rybalko <ray@freebsd.org> wrote: > >> > Hi, > >> > > >> > I believe what Jason Evans done many test before commit jemalloc, > >> > but made by myself simple test for embedded environment. And get > >> > following results: > >> > > >> > 1. old malloc: > >> > Sum of RSS of userland programs: 28544K > >> > > >> > sysctl vm.vmtotal: > >> > System wide totals computed every five seconds: (values in > >> > kilobytes) =============================================== > >> > Processes: (RUNQ: 1 Disk Wait: 1 Page Wait: 0 Sleep: > >> > 19) Virtual Memory: (Total: 2372224K Active: 250316K) > >> > Real Memory: (Total: 18096K Active: 11392K) > >> > Shared Virtual Memory: (Total: 15824K Active: 5288K) > >> > Shared Real Memory: (Total: 2644K Active: 2408K) > >> > Free Memory: 2192K > >> > > >> > > >> > 2. jemalloc with MALLOC_PRODUCTION: > >> > Sum of RSS of userland programs: 21196K > >> > > >> > sysctl vm.vmtotal: > >> > System wide totals computed every five seconds: (values in > >> > kilobytes) =============================================== > >> > Processes: (RUNQ: 1 Disk Wait: 1 Page Wait: 0 Sleep: > >> > 19) Virtual Memory: (Total: 2380988K Active: 257820K) > >> > Real Memory: (Total: 19048K Active: 12144K) > >> > Shared Virtual Memory: (Total: 16180K Active: 5392K) > >> > Shared Real Memory: (Total: 2664K Active: 2392K) > >> > Free Memory: 2440K > >> > > >> > I check it on DIR-632(Atheros AR7242 with 32M RAM) between 10-20 > >> > mins of uptime. Device behave identical in both cases. > >> > > >> > So if "something" new take more memory than before, that > >> > "something" is not a jemalloc :) > >> > > >> > P.S. Many thanks to Jason for such great job! > >> > > >> > WBW > >> > -- > >> > Aleksandr Rybalko <ray@freebsd.org> > > Hi all, > > so, unlike both jemallocs, Poul's version of malloc born with more free > memory: > > Sum of RSS of userland programs: 25444K > > sysctl vm.vmtotal: > System wide totals computed every five seconds: (values in kilobytes) > =============================================== > Processes: (RUNQ: 1 Disk Wait: 1 Page Wait: 0 Sleep: 19) > Virtual Memory: (Total: 2163524K Active: 59196K) > Real Memory: (Total: 16656K Active: 10144K) > Shared Virtual Memory: (Total: 5620K Active: 5200K) > Shared Real Memory: (Total: 2552K Active: 2356K) > Free Memory: 3140K > > But after half a day with some minor activity (logs on tmpfs, racoon > connect attempts, etc.) free memory goes down to: > > Free Memory: 2316K > > and continue get more and more memory, after full day, it is around > 1.5M free. It is ok to have "low" free memory. The kernel will just keep file data cached around forever if it can. When free memory hits a certain target, then the pagedaemon process will wake up and shuffle some inactive pages down to "cache" to free up more memory. However, until that happens cached file data will just stay in "inactive" and the kernel will keep using "free" pages. -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201207301422.10029.jhb>