Java memory mapped files and swap

Posted by MarkS on Stack Overflow See other posts from Stack Overflow or by MarkS
Published on 2010-04-05T20:51:08Z Indexed on 2010/04/05 20:53 UTC
Read the original article Hit count: 266

Filed under:
|
|

I'm looking at some memory mapped files in Java. Let's say I have a heap size set to 2gb, and I memory map a file that is 50gb - far more than the physical memory on the machine. The OS will cache parts of that 50gb file in the os file cache, the java process will have 2gb of heap space. What I'm curious about is how does the OS decide how much of the 50gb file to cache?

For instance, if I have another java process, also with a 2gb heap size, will that 2gb be swapped out to allow the os to cache parts of the memory mapped file? Will parts of the heap space of the first process be swapped out to allow the OS to cache?

Is there any way to tell the OS not to swap heap space for OS caching? If the OS doesn't swap out main processes, how does it determine how big its file cache should be?

© Stack Overflow or respective owner

Related posts about java

Related posts about linux