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 $pidJVM args for setting up java process:
-XX:+PrintNMTStatistics -XX:+UnlockDiagnosticVMOptions -XX:NativeMemoryTracking=detailTaking baseline with jcmd:
jcmd $pid VM.native_memory baselineTaking 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?
                        
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.