[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

2.6 kernel memory management question



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 debian (sarge) 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?

And one more question: as temporary solution I've moved some of my
systems to 2.4 kernel (it helped, by the way!). But there is another
problem, dut to plain /proc structure 'top' utility make very heavy load
on the system, 'couse there is huge amount of java threads. Is there
some way to fight with it? Maybe some patches for procfs on 2.4 kernels?
Or some tricky 'top' that doesn't cause load on the system?

Thank you for your answers!

-- 
WBR,
Alexander Burnos



Reply to: