intel s3500 -- hot stuff

From: Merlin Moncure <mmoncure(at)gmail(dot)com>
To: postgres performance list <pgsql-performance(at)postgresql(dot)org>
Subject: intel s3500 -- hot stuff
Date: 2014-11-05 17:40:59
Message-ID: CAHyXU0yaUG9R_E5=1gdXhD-MpWR=Gr=4=EHFD_fRid2+SCQrqA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-performance

I recently sourced a 300gb intel s3500 ssd to do some performance
testing. I didn't see a lot of results on the web so I thought I'd
post some numbers. Testing machine is my workstation crapbox with 4
cores and 8GB ram (of which about 4 is usable by the ~ 50gb database).
The drive cost 260$ at newegg (sub 1$/gb) and is write durable.

Single thread 'select only' results are pretty stable 2200 tps isn't
bad. of particular note is the sub millisecond latency of the read.
Per iostat I'm getting ~ 55mb/sec read off the device and around 4100
device tps:

transaction type: SELECT only
scaling factor: 3000
query mode: simple
number of clients: 1
number of threads: 1
duration: 10 s
number of transactions actually processed: 22061
tps = 2206.019701 (including connections establishing)
tps = 2206.534467 (excluding connections establishing)
statement latencies in milliseconds:
0.003143 \set naccounts 100000 * :scale
0.000776 \setrandom aid 1 :naccounts
0.447513 SELECT abalance FROM pgbench_accounts WHERE aid = :aid;

Multi thread 'select only' results are also pretty stable: I get
around 16-17k tps, but of note:
*) iowait in the mid 40's
*) cpu bound
*) consistent 430mb/sec off the device per iostat !! that's
incredible!! (some of the latency may in fact be from SATA).

transaction type: SELECT only
scaling factor: 3000
query mode: simple
number of clients: 32
number of threads: 32
duration: 20 s
number of transactions actually processed: 321823
tps = 16052.052818 (including connections establishing)
tps = 16062.973737 (excluding connections establishing)
statement latencies in milliseconds:
0.002469 \set naccounts 100000 * :scale
0.000528 \setrandom aid 1 :naccounts
1.984443 SELECT abalance FROM pgbench_accounts WHERE aid = :aid;

For random write tests, I see around 1000tps for single thread and ~
4700 with 32 threads. These results are more volatile and,
importantly, I disable synchronous commit feature. For the price,
unless you are doing tons and tons of writing (in which case i'd opt
for a more expensive drive like the S3700). This drive is perfectly
suited for OLAP work IMO since ssds like the big sequential loads and
random access of the data is no problem.

merlin

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Geoghegan 2014-11-05 17:47:45 Re: B-Tree index builds, CLUSTER, and sortsupport
Previous Message Heikki Linnakangas 2014-11-05 17:32:27 Re: Sequence Access Method WIP

Browse pgsql-performance by date

  From Date Subject
Next Message Merlin Moncure 2014-11-05 18:09:16 Re: intel s3500 -- hot stuff
Previous Message Tomas Vondra 2014-11-04 20:31:44 Re: 9.3 performance issues, lots of bind and parse log entries