Re: Problem in Page Cache Replacement

From: Jaegeuk Hanse
Date: Thu Nov 22 2012 - 14:36:00 EST


On 11/22/2012 05:34 AM, Johannes Weiner wrote:
Hi,

On Tue, Nov 20, 2012 at 07:25:00PM +0100, Jan Kara wrote:
On Tue 20-11-12 09:42:42, metin d wrote:
I have two PostgreSQL databases named data-1 and data-2 that sit on the
same machine. Both databases keep 40 GB of data, and the total memory
available on the machine is 68GB.

I started data-1 and data-2, and ran several queries to go over all their
data. Then, I shut down data-1 and kept issuing queries against data-2.
For some reason, the OS still holds on to large parts of data-1's pages
in its page cache, and reserves about 35 GB of RAM to data-2's files. As
a result, my queries on data-2 keep hitting disk.

I'm checking page cache usage with fincore. When I run a table scan query
against data-2, I see that data-2's pages get evicted and put back into
the cache in a round-robin manner. Nothing happens to data-1's pages,
although they haven't been touched for days.

Does anybody know why data-1's pages aren't evicted from the page cache?
I'm open to all kind of suggestions you think it might relate to problem.
This might be because we do not deactive pages as long as there is
cache on the inactive list. I'm guessing that the inter-reference
distance of data-2 is bigger than half of memory, so it's never
getting activated and data-1 is never challenged.

Hi Johannes,

What's the meaning of "inter-reference distance" and why compare it with half of memoy, what's the trick?

Regards,
Jaegeuk


I have a series of patches that detects a thrashing inactive list and
handles working set changes up to the size of memory. Would you be
willing to test them? They are currently based on 3.4, let me know
what version works best for you.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxxx For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/