Hi,

I have a test node with apache-cassandra-0.6.8 on ubuntu 10.4.  The hardware
environment is an OpenVZ container. JVM settings is
# java -Xmx128m -version
java version "1.6.0_18"
OpenJDK Runtime Environment (IcedTea6 1.8.2) (6b18-1.8.2-4ubuntu2)
OpenJDK 64-Bit Server VM (build 16.0-b13, mixed mode)

This is the memory settings:

"/usr/bin/java -ea -Xms1G -Xmx1G ..."

And the ondisk footprint of sstables is very small:

"#du -sh data/
 "9.8M    data/"

The node was infrequently accessed in the last  three weeks.  After that, I
observe the abnormal memory utilization by top:

  PID USER      PR  NI  *VIRT*  *RES*  SHR S %CPU %MEM    TIME+
COMMAND

 7836 root      15   0     *3300m* *2.4g*  13m S    0 26.0   2:58.51
java

The jvm heap utilization is quite normal:

#sudo jstat -gc -J"-Xmx128m" 7836
 S0C    S1C    S0U    S1U      *EC*       *EU*          *OC*
 *OU*
*PC           PU*          YGC  YGCT  FGC    FGCT     GCT
8512.0 8512.0 372.8   0.0   *68160.0*   *5225.7*   *963392.0   508200.7
30604.0 18373.4*    480    3.979      2      0.005    3.984

And then I try "pmap" to see the native memory mapping. *There is two large
anonymous mmap regions.*

00000000080dc000 1573568K rw---    [ anon ]
00002b2afc900000  1079180K rw---    [ anon ]

The second one should be JVM heap.  What is the first one?  Mmap of sstable
should never be anonymous mmap, but file based mmap.  *Is it  a native
memory leak?  *Does cassandra allocate any DirectByteBuffer?

best regards,
hanzhu

Reply via email to