Are we in the ballpark?

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

 



We're building a new database box. With the help of Gregory Smith's book, we're benchmarking the box: We want to know that we've set it up right, we want numbers to go back to if we have trouble later, and we want something to compare our _next_ box against. What I'd like to know is, are the performance numbers we're getting in the ballpark for the class of hardware we've picked?

First, the setup:

CPU: Two AMD Opteron 6128 (Magny-Cours) 2000 mHz, eight cores each
RAM: DDR3-1333 64 GB (ECC)
RAID: 3Ware 9750 SAS2/SATA-II PCIe, 512 MB battery backed cache, write-back caching enabled.
Drives: 16 Seagate ST3500414SS 500GB 7200RPM SAS, 16 MB cache:
  2 RAID1 ($PG_DATA/xlog)
  12 RAID10 ($PG_DATA)
  2 hot spare
PostgreSQL 8.4.1 on x86_64-pc-linux-gnu, compiled by GCC gcc-4.3.real (Debian 4.3.4-2) 4.3.4, 64-bit
File system: XFS (nobarrier, noatime)
i/o scheduler: noop

Database config (differences from stock that might affect performance):
shared_buffers = 8192MB
temp_buffers = 16MB
work_mem = 192MB
maintenance_work_mem = 5GB
wal_buffers = 8MB
checkpoint_segments = 64
checkpoint_completion_target = 0.9
random_page_cost = 1.0
constraint_exclusion = on

Now, the test results:

Memtest86+ says our memory bandwidth is:
  L1 32,788 MB/S
  L2 is 10,050 MB/S
  L3 is 6,826 MB/S

Stream v5.9 says:
  1 core: 4,320
  2 cores: 8,387
  4 cores: 15,840
  8 cores: 23,088
  16 cores: 24,286

Bonnie++ (-f -n 0 -c 4)
  $PGDATA/xlog (RAID1)
    random seek: 369/sec
    block out: 87 MB/sec
    block in: 180 MB/sec
  $PGDATA (RAID10, 12 drives)
    random seek: 452
    block out: 439 MB/sec
    block in: 881 MB/sec

sysbench test of fsync (commit) rate:

  $PGDATA/xlog (RAID1)
    cache off: 29 req/sec
    cache on:  9,342 req/sec
  $PGDATA (RAID10, 12 drives)
    cache off: 61 req/sec
    cache on: 8,191 req/sec

pgbench-tools:

  Averages for test set 1 by scale:
                        avg_
  set 	clients tps 	latency	90%< 	max_latency
  1 	1 	29141 	0.248 	0.342 	5.453
  1 	10 	31467 	0.263 	0.361 	7.148
  1 	100 	31081 	0.265 	0.363 	7.843
  1 	1000 	29499 	0.278 	0.365 	11.264

  Averages for test set 1 by clients:
                        avg_
  set 	clients tps 	latency	90%< 	max_latency
  1 	1 	9527 	0.102 	0.105 	1.5
  1 	2 	13850 	0.14 	0.195 	5.316
  1 	4 	19148 	0.19 	0.251 	2.228
  1 	8 	44101 	0.179 	0.248 	2.557
  1 	16 	50311 	0.315 	0.381 	11.057
  1 	32 	47765 	0.666 	0.989 	24.076

We've used Brad Fitzpatrick's diskchecker script to show that the i/o stack is telling the truth when it comes to fsync.

Are there any nails sticking up that we need to pound on before we start more extensive (real-world-ish) testing with this box?

--
Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance


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

  Powered by Linux