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
