Re: Unexpected pgbench result

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Dec 19, 2013 at 10:44 AM, Shaun Thomas <sthomas@xxxxxxxxxxxxxxxx> wrote:
On 12/19/2013 11:00 AM, Dave Johansen wrote:

When I run pgbench in "SELECT only" after doing "-i -s 2000" I get what
appears to be good performance (60k-70k tps) but if I initialize a new
database with "-i -s 4000" the tps drops to 4k-7k. Is this order of
magnitude drop expected? Or is there something wrong with my hardware or
database configuration that is causing this issue?

When you increase the size of the initialized pgbench tables, you increase the size on disk. My guess is that you doubled it so that the data no longer fits in memory. You can verify this yourself:

SELECT pg_size_pretty(sum(pg_database_size(oid))::bigint)
  from pg_database;

Any amount of memory you have that is smaller than that, will affect select performance. I can guarantee you will not get 60k-70k tps from anything short of an array of SSD devices or a PCIe NVRAM solution. Your '-s 2000' test was probably running mostly from memory, while the '-s 4000' did not.

What you're seeing is the speed your records are being supplied from disk, plus whatever cache effects are there when records are read before they are flushed in favor of more recent data.

Yep, that was exactly it and that definitely makes sense now that you point it out.

Right now, we're running a RAID 1 for pg_clog, pg_log and pg_xlog and then a RAID 1+0 with 12 disks for the data. Would there be any benefit to running a separate RAID 1+0 with a tablespace for the indexes? Or is reading the indexes and data a serial process where separating them like that won't have any big benefit?

Thanks,
Dave

[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux