mmap()

Joseph Koshy joseph.koshy at gmail.com
Thu Nov 24 10:28:16 PST 2005


> So here's the problem, I've got a DB server that needs a
> large datasize and a tomcat server which occasionally needs
> to use a lot of memory, which java allocates from a memory
> mapped space. Any ideas how to get the system to allow
> processes to have either/or?

IIRC, the process layout is something like the following

  (Kernel)   ~0..[VM_MAXUSER_ADDRESS]
  Stack bottom (includes char *environment etc.)
  ...
  Current top of stack

  (Space for mmapp'ed objects.)

  >highest possible data segment address<
  malloc arena (heap)
  .bss
  .data
  .text
  >start of text<
  (gap)
  Virtual address 0

Possible solutions could be:

 - link statically (i.e., don't fragment the mmap arena)
 - reduce the data segment size (i.e., reduce the malloc
   arena size) by tweaking the run time limits associated
   with the process.

--
FreeBSD Volunteer,     http://people.freebsd.org/~jkoshy


More information about the freebsd-performance mailing list