Linux machine aggressively clearing cache

From: Joshua Berkus <josh(at)agliodbs(dot)com>
To: postgres performance list <pgsql-performance(at)postgresql(dot)org>
Subject: Linux machine aggressively clearing cache
Date: 2012-03-27 20:06:17
Message-ID: 160356272.159746.1332878777645.JavaMail.root@mail-1.01.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Have run across some memory behavior on Linux I've never seen before.

Server running RHEL6 with 96GB of RAM.
Kernel 2.6.32
PostgreSQL 9.0
208GB database with fairly random accesses over 50% of the database.

Now, here's the weird part: even after a week of uptime, only 21 to 25GB of cache is ever used, and there's constantly 20GB to 35GB free memory. This would mean a small working set, except that we see constant reads from disk (1 to 15MB/s) and around 1/3 of queries are slowed by iowaits.

In an effort to test this, we deliberately ran a pg_dump. This did grow the cache to all available memory, but Linux rapidly cleared the cache (flushing to disk) down to 25GB within an hour.

sys.kernel.vm parameters are all defaults. None of the parameters seem to specifically relate to the size of the page cache.

Has anyone ever seen this before? What did you do about it?

--
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com
San Francisco

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Claudio Freire 2012-03-27 20:10:27 Re: Linux machine aggressively clearing cache
Previous Message Joshua Berkus 2012-03-27 19:58:22 Re: Determining working set size