I'm working on a benchmark that demonstrates the effects of moving
tables or indexes to separate devices (SSD and HDD), and one thing that
really caught my eye are spikes in the tps charts. See this:
The first one is a database with data on an SSD and indexes on 7.2k HDD.
Around 2:00, the performance significantly grows (over 4k tps) and then
falls to about 500 tps (which is maintained for the remainder of the
I've seen similar spikes on HDD (both data and indexes on the same
device) - that's the second chart. The difference is not that huge, but
the spike at around 6:00 is noticeable.
Interestingly, by separating the data and indexes to two 7.2k drives,
the spike disappears - that's the third chart.
Any ideas why this happens? Is this a pgbench-only anomaly that does not
happen in real-world scenarios?
My theory is that it's related to the strategy that chooses what to keep
in shared_buffers (or page cache), and that somehow does not work too
well in this case.
pgsql-performance by date
|Next:||From: Merlin Moncure||Date: 2012-01-23 17:03:17|
|Subject: Re: spikes in pgbench read-only results|
|Previous:||From: Tomas Vondra||Date: 2012-01-22 23:07:01|
|Subject: Re: wal_level=archive gives better performance than minimal