Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does RSS tracks reserved or commited memory?

I'm running experiments with different jvm options on java 8 in order to lower RSS:

  • Script used for Rss tracking:

    ps -o rss -o vsz -o pid $pid

  • JVM args for setting up java process:

    -XX:+PrintNMTStatistics -XX:+UnlockDiagnosticVMOptions -XX:NativeMemoryTracking=detail

  • Taking baseline with jcmd:

    jcmd $pid VM.native_memory baseline

  • Taking diff with jcmd:

    jcmd $pid VM.native_memory summary.diff

Output (partial for Thread area):

-                    Thread (reserved=130696KB -21564KB, committed=130696KB -21564KB)
                            (thread #121 -21)
                            (stack: reserved=130048KB -21504KB, committed=130048KB -21504KB)
                            (malloc=379KB -67KB #610 -105)
                            (arena=268KB +7 #240 -42)

Question: What memory will be taken into account for RSS from output above, is it committed or reserved?

like image 464
Petro Semeniuk Avatar asked Sep 28 '22 12:09

Petro Semeniuk


1 Answers

The relation between reserved/committed and resident/virtual is a little more complex. RSS covers pages resident in physical memory. Things that have been paged out (or never paged in) can be committed memory but not resident.

Maybe this answers your question: reserved-but-not-committed pages cannot be resident.

like image 127
the8472 Avatar answered Sep 30 '22 14:09

the8472