Need some help analyzing some benchmarks

From: "Benjamin Krajmalnik" <kraj(at)servoyant(dot)com>
To: <pgsql-performance(at)postgresql(dot)org>
Subject: Need some help analyzing some benchmarks
Date: 2011-02-06 08:04:40
Message-ID: F4E6A2751A2823418A21D4A160B689887B0E77@fletch.stackdump.local
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Before I deploy some new servers, I figured I would do some
benchmarking.

Server is a Dual E5620, 96GB RAM, 16 x 450GB SAS(15K) drives.

Controller is an Areca 1680 with 2GB RAM and battery backup.

So far I have only run bonie++ since each cycle is quite long (writing
192GB).

My data partition is 12 drives in RAID 1+0 (2.7TB) running UFS2.
Vfs.read_max has been set to 32, and no other tuning has been done.

Files system is not mounted with noatime at this point.

Below are the results:

db1# bonnie++ -d /usr/local/pgsql -c 4 -n 2:10000000:1000000:64 -u pgsql

Version 1.96 ------Sequential Output------ --Sequential Input-
--Random-

Concurrency 4 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block--
--Seeks--

Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP
/sec %CP

db1.stackdump. 192G 860 99 213731 52 28518 45 1079 70 155479 34
49.9 12

Latency 10008us 2385ms 1190ms 457ms 2152ms
231ms

Version 1.96 ------Sequential Create------ --------Random
Create--------

db1.stackdump.local -Create-- --Read--- -Delete-- -Create-- --Read---
-Delete--

files:max:min /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
/sec %CP

2:10000000:1000000/64 49 33 128 96 277 97 57 39 130 90
275 97

Latency 660ms 13954us 13003us 904ms 334ms
13365us

Not having anything to compare it to, I do not know if these are decent
numbers or not - they are definitely slower than a similar setup which
was posted recently using XFS on Linux, but I have not found anything
in FreeBSD using UFS2 to compare it to. What strikes me in particular
is that the write performance is higher than the read performance - I
would have intuitively expected it to be the other way around.

My log partition is a RAID1, same drives. Performance follows:

Version 1.96 ------Sequential Output------ --Sequential Input-
--Random-

Concurrency 4 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block--
--Seeks--

Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP
/sec %CP

db1.stackdump. 192G 861 99 117023 28 20142 43 359 23 109719 24
419.5 12

Latency 9890us 13227ms 8944ms 3623ms 2236ms
252ms

Version 1.96 ------Sequential Create------ --------Random
Create--------

db1.stackdump.local -Create-- --Read--- -Delete-- -Create-- --Read---
-Delete--

files:max:min /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
/sec %CP

2:10000000:1000000/64 24 16 121 93 276 97 22 15 134 93
275 97

Latency 4070ms 14029us 13079us 15016ms 573ms
13369us

After seeing these results, I decided to download the areca cli and
check the actual setup

Info from the RAID controller follows:

CLI> sys info

The System Information

===========================================

Main Processor : 1200MHz

CPU ICache Size : 32KB

CPU DCache Size : 32KB

CPU SCache Size : 512KB

System Memory : 2048MB/533MHz/ECC

Firmware Version : V1.48 2010-10-21

BOOT ROM Version : V1.48 2010-01-04

Serial Number : Y051CABVAR600825

Controller Name : ARC-1680

Current IP Address : 192.168.1.100

CLI> rsf info raid=2

Raid Set Information

===========================================

Raid Set Name : Raid Set # 001

Member Disks : 12

Total Raw Capacity : 5400.0GB

Free Raw Capacity : 0.0GB

Min Member Disk Size : 450.0GB

Raid Set State : Normal

CLI> vsf info vol=2

Volume Set Information

===========================================

Volume Set Name : ARC-1680-VOL#001

Raid Set Name : Raid Set # 001

Volume Capacity : 2700.0GB

SCSI Ch/Id/Lun : 00/00/01

Raid Level : Raid1+0

Stripe Size : 8K

Member Disks : 12

Cache Mode : Write Back

Tagged Queuing : Enabled

Volume State : Normal

===========================================

Having done this, I noticed that the stripe size is configured to 8K.

I am thinking the problem may be due to the stripe size. I had asked
the vendor to set up the file system for these two arrays with 8K
blocks, and I believe they may have misunderstood my request and set the
stripe size to 8K. I assume increasing the stripe size will improve the
performance.

What stripe sizes are you typically using? I was planning on setting it
up with a 64K stripe size.

TIA,

Benjamin

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Greg Smith 2011-02-06 08:09:03 Re: checkpoint_completion_target and Ext3
Previous Message Cédric Villemain 2011-02-05 22:15:15 Re: Write-heavy pg_stats_collector on mostly idle server