On Friday 27 November 2009 22:17:31 Maxim Sobolev wrote: > I am trying to figure out why java fails to start with 1024MB of heap > on i386 with 4GB of RAM and 4GB of swap. Both MAXDSIZ and DFLDSIZ are > set to 2GB. Here is my limits: > > Resource limits (current): > cputime infinity secs > filesize infinity kB > datasize 2097152 kB > stacksize 65536 kB > coredumpsize infinity kB > memoryuse infinity kB > memorylocked infinity kB > maxprocesses 5547 > openfiles 20000 > sbsize infinity bytes > vmemoryuse infinity kB > > Running ktrace I see: > > 9154 java CALL > mmap(0,0x44000000,PROT_READ|PROT_WRITE|PROT_EXEC,MAP_PRIVATE|MAP_NORESERVE|MAP_ANON,0xffffffff,0,0) > 9154 java RET mmap -1 errno 12 Cannot allocate memory > 9154 java CALL write(0x1,0xbf9fe378,0x2b) > 9154 java GIO fd 1 wrote 43 bytes > "Error occurred during initialization of VM
On i386 a process has only 3GiB of address space. If you reserve 2GiB for datasize (sbrk), there's less than 1GiB available for mmap. Unless you have a program that still uses sbrk and needs 2GiB you should make maxdsiz much smaller. Since FreeBSD 7 malloc can use mmap besides sbrk so you can set maxdsiz to a really small value if you want to. _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"