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.  :)

> 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.

> Solr is using "direct memory" - that's part of the processes RAM but not part 
> of the heap. It's fixed at startup (-XX:MaxDirectMemorySize).

I knew about the direct memory.  I should’ve added that NIO is “Native I/O.”  I 
did not know the MaxDirectMemorySize flag, thanks!

regards
danno

Reply via email to