Alexander Burnos wrote: > Hello! > > Sorry if it's not appropriate mail list for this question if it's so, > please, point me to the correct place to ask. > > I have several linux (debian) servers with java applications each of > them takes, for examples, 200 mbyte of RAM. I've noticed that on > machines with 2.4 kernels VIRT and RES memory (accordinly to 'top' > values) are equal. So top shows me that VIRT == RES == 200 mbyte > (approximately). > But! On the servers with 2.6 kernel I have another picture, VIRT memory > in several times bigger than RES. For example real memory of java > proccess is 146 mbytes, but virtual - 470 mbytes. > > At the firt look it isn't a problem, but when I have several java > processes and summary of their virtual memory is more than physical > memory on the server - operatin system begin swapping although there is > 30-50% of free memory (2 Gbyte memory on each machine). > At the end we have machine that fall into hard swapping when big part of > memory is actually free. > I've tried to play with "echo 0 > /proc/sys/vm/swappiness" but it didn't > give me good results. > > Please, point me to doc where I can read about "physics" of this process > and where I can make some tunning to avoid this effect of growing > virtual memory on 2.6 kernels? > > Maybe, it depends on the difference between NPTL and linuxthreads > realization? > > Thank you for your answers! > Using a 2.6 kernel you might try playing around with the vmalloc=xxxM boot param. Using a 2.4 kernel the less real memory you have the more vm you seem to get. There is also a define somewhere in the 2.4 kernel that can be increased before compilation but I hear there are problems with grub if you do. Can't think of the name right now. Mark -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/