On 30/07/2021 23:00, Dan Pritts wrote:

On 30 Jul 2021, at 16:18, Andy Seaborne wrote:

Hi Dan,

Bit hazy about you deployment. Too many to track!

I’m going to have to talk to your supervisor about this.  :)

What is this "supervisor" of which you speak?

When there is a persistent database, TDB uses memory mapped files. The space 
shows as part of the JVM process (it's a virtual memory mapping from the file 
system); it's not heap.

It means a Java process can look huge - 100Gs is possible.

But it's being managed by the OS file system cache. It's paged; real RAM is 
being used as a cache. That's why allocating all RAM to the java heap is a bad 
idea for TDB. It leaves less space for indexes to be cached.

This isn’t what we have run into - the process’s RSS goes through the roof, 
much bigger than the heap.  Unfortunately I can’t reproduce it easily, only in 
production.

Quote possible - RSS is all process resident memory which includes memory mapped areas that are currently in the file system cache as decided by the OS.

https://www.kernel.org/doc/Documentation/filesystems/proc.txt

about /proc/PID/status

Table 1-2

VmRSS        size of memory portions. It contains the three
             following parts (VmRSS = RssAnon + RssFile + RssShmem)
 RssAnon         size of resident anonymous memory
 RssFile         size of resident file mappings
 RssShmem        size of resident shmem memory (includes SysV shm,
                 mapping of tmpfs and shared anonymous mappings)

    Andy

Reply via email to