From: | Neto pr <netopr9(at)gmail(dot)com> |
---|---|
To: | Justin Pryzby <pryzby(at)telsasoft(dot)com> |
Cc: | postgres performance list <pgsql-performance(at)postgresql(dot)org> |
Subject: | Re: HDD vs SSD without explanation |
Date: | 2018-01-15 02:36:02 |
Message-ID: | CA+wPC0M3ez3bnsg+kCXcc7czUkJX5v1kUCneaaKUujJwMLkEzQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
2018-01-14 15:59 GMT-08:00 Neto pr <netopr9(at)gmail(dot)com>:
> Thanks for the reply.
> I'll try upload the execution plan with Explain (analyse, buffer) for
> website: https://explain.depesz.com/
>
Below is a new execution plan, with Analyze, BUFFERS. This time,
without changing anything in the configuration of the DBMS, I just
rebooted the DBMS, the time of 16 minutes was obtained, against the 26
minutes of another execution. But it still has not managed to exceed
the execution time in HDD SAS 15Krpm.
I was not able to upload to the site, because I'm saving the execution
plan in the database, and when I retrieve it, it loses the line
breaks, and the dxxxx site does not allow uploading.
------------------- Execution Plan with Buffers executed on SSD
Stores.---------------------------------------------------------------------------------------------
Finalize GroupAggregate (cost=15822228.33..15980046.69 rows=60150
width=66) (actual time=969248.287..973686.679 rows=175 loops=1) Group
Key: nation.n_name, (date_part(_year_::text,
(orders.o_orderdate)::timestamp without time zone)) Buffers: shared
hit=1327602 read=2305013, temp read=1183857 written=1180940 ->
Gather Merge (cost=15822228.33..15977791.06 rows=120300 width=66)
(actual time=969222.164..973685.582 rows=525 loops=1) Workers
Planned: 2 Workers Launched: 2 Buffers: shared
hit=1327602 read=2305013, temp read=1183857 written=1180940 ->
Partial GroupAggregate (cost=15821228.31..15962905.44 rows=60150
width=66) (actual time=941985.137..946403.344 rows=175 loops=3)
Group Key: nation.n_name, (date_part(_year_::text,
(orders.o_orderdate)::timestamp without time zone))
Buffers: shared hit=3773802 read=7120852, temp read=3550293
written=3541542 -> Sort (cost=15821228.31..15838806.37
rows=7031225 width=57) (actual time=941954.595..943119.850
rows=4344197 loops=3) Sort Key: nation.n_name,
(date_part(_year_::text, (orders.o_orderdate)::timestamp without time
zone)) DESC Sort Method: external merge Disk:
320784kB Buffers: shared hit=3773802 read=7120852,
temp read=3550293 written=3541542 -> Hash Join
(cost=4708859.28..14719466.13 rows=7031225 width=57) (actual
time=619996.638..933725.615 rows=4344197 loops=3)
Hash Cond: (lineitem.l_suppkey = supplier.s_suppkey)
Buffers: shared hit=3773732 read=7120852, temp read=3220697
written=3211409 -> Hash Join
(cost=4683017.71..14434606.65 rows=7071075 width=43) (actual
time=579893.395..926348.061 rows=4344197 loops=3)
Hash Cond: (lineitem.l_orderkey = orders.o_orderkey)
Buffers: shared hit=3758207 read=7108695, temp
read=3114271 written=3105025 -> Hash
Join (cost=1993687.71..11297331.33 rows=7071075 width=47) (actual
time=79741.803..805259.856 rows=4344197 loops=3)
Hash Cond: ((lineitem.l_suppkey = partsupp.ps_suppkey)
AND (lineitem.l_partkey = partsupp.ps_partkey))
Buffers: shared hit=1754251 read=5797780, temp
read=2369849 written=2366741 ->
Hash Join (cost=273201.71..9157213.44 rows=7071075 width=45) (actual
time=5363.078..672302.517 rows=4344197 loops=3)
Hash Cond: (lineitem.l_partkey = part.p_partkey)
Buffers: shared hit=325918
read=5027133, temp read=1742658 written=1742616
-> Parallel Seq Scan on lineitem
(cost=0.00..5861333.20 rows=100005120 width=41) (actual
time=0.129..536226.436 rows=80004097 loops=3)
Buffers: shared hit=2 read=4861280
-> Hash (cost=263921.00..263921.00
rows=565657 width=4) (actual time=5362.100..5362.100 rows=434469
loops=3) Buckets:
131072 Batches: 8 Memory Usage: 2933kB
Buffers: shared hit=325910 read=165853, temp
written=3327 -> Seq
Scan on part (cost=0.00..263921.00 rows=565657 width=4) (actual
time=0.025..5279.959 rows=434469 loops=3)
Filter: ((p_name)::text ~~ _%orchid%_::text)
Rows Removed by
Filter: 7565531
Buffers: shared hit=325910 read=165853
-> Hash (cost=1052986.00..1052986.00 rows=32000000 width=22)
(actual time=74231.061..74231.061 rows=32000000 loops=3)
Buckets: 65536 Batches: 512 Memory
Usage: 3941kB Buffers:
shared hit=1428311 read=770647, temp written=513846
-> Seq Scan on partsupp
(cost=0.00..1052986.00 rows=32000000 width=22) (actual
time=0.037..66316.652 rows=32000000 loops=3)
Buffers: shared hit=1428311 read=770647
-> Hash (cost=1704955.00..1704955.00
rows=60000000 width=8) (actual time=46310.630..46310.630 rows=60000000
loops=3) Buckets: 131072
Batches: 1024 Memory Usage: 3316kB
Buffers: shared hit=2003950 read=1310915, temp written=613128
-> Seq Scan on orders
(cost=0.00..1704955.00 rows=60000000 width=8) (actual
time=0.033..34352.493 rows=60000000 loops=3)
Buffers: shared hit=2003950 read=1310915
-> Hash (cost=18106.56..18106.56 rows=400000 width=30)
(actual time=226.360..226.360 rows=400000 loops=3)
Buckets: 65536 Batches: 8 Memory Usage: 3549kB
Buffers: shared hit=15437 read=12157, temp
written=6396 -> Hash Join
(cost=1.56..18106.56 rows=400000 width=30) (actual time=0.037..145.779
rows=400000 loops=3) Hash Cond:
(supplier.s_nationkey = nation.n_nationkey)
Buffers: shared hit=15437 read=12157
-> Seq Scan on supplier (cost=0.00..13197.00
rows=400000 width=12) (actual time=0.014..63.768 rows=400000 loops=3)
Buffers: shared hit=15434
read=12157 -> Hash
(cost=1.25..1.25 rows=25 width=30) (actual time=0.015..0.015 rows=25
loops=3) Buckets: 1024
Batches: 1 Memory Usage: 10kB
Buffers: shared hit=3 ->
Seq Scan on nation (cost=0.00..1.25 rows=25 width=30) (actual
time=0.006..0.008 rows=25 loops=3)
Buffers: shared hit=3Planning time: 16.668 msExecution
time: 973799.430 ms
------------------------------------------------------------------------------------------------------------------------------------------------
> I'm make an experiment for a scientific research and this is what I
> find strange, explaining better, strange HDD performance far outweigh
> the performance of an SSD.
>
> Do you think that if you run a VACUMM FULL the performance with the
> SSD will be better than a 15Krpm SAS HDD?
>
> Best Regards
> Neto
> <div id="DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2"><br /> <table
> style="border-top: 1px solid #D3D4DE;">
> <tr>
> <td style="width: 55px; padding-top: 18px;"><a
> href="https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail"
> target="_blank"><img
> src="https://ipmcdn.avast.com/images/icons/icon-envelope-tick-round-orange-animated-no-repeat-v1.gif"
> alt="" width="46" height="29" style="width: 46px; height: 29px;"
> /></a></td>
> <td style="width: 470px; padding-top: 17px; color: #41424e;
> font-size: 13px; font-family: Arial, Helvetica, sans-serif;
> line-height: 18px;">Livre de vírus. <a
> href="https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail"
> target="_blank" style="color: #4453ea;">www.avast.com</a>. </td>
> </tr>
> </table>
> <a href="#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2" width="1" height="1"></a></div>
>
> 2018-01-14 19:40 GMT-02:00 Justin Pryzby <pryzby(at)telsasoft(dot)com>:
>> On Sun, Jan 14, 2018 at 12:44:00PM -0800, Neto pr wrote:
>>> Dear all
>>>
>>> Someone help me analyze the two execution plans below (Explain ANALYZE
>>> used), is the query 9 of TPC-H benchmark [1].
>>>
>>> I'm using a server HP Intel Xeon 2.8GHz/4-core - Memory 8GB HDD SAS 320GB
>>> 15 Krpm AND SSD Sansung EVO 500GB.
>>>
>>> I think maybe the execution plan is using more write operations, and so the
>>> HDD SAS 15Krpm has been faster.
>>
>> The query plan is all garbled by mail , could you resend? Or post a link from
>> https://explain.depesz.com/
>>
>> To see if the query is causing many writes (due to dirty pages, sorts, etc),
>> run with explain(analyze,buffers)
>>
>> But from what I could tell, your problems are here:
>>
>> -> Parallel Seq Scan on lineitem (cost=0.00..5861332.93 rows=100005093 width=41) (actual TIME=3.494..842667.110 rows=80004097 loops=3)
>> vs
>> -> Parallel Seq Scan on lineitem (cost=0.00..5861333.40 rows=100005140 width=41) (actual TIME=41.805..224438.909 rows=80004097 loops=3)
>>
>> -> Seq Scan on partsupp (cost=0.00..1052983.08 rows=31999708 width=22) (actual TIME=0.033..228828.149 rows=32000000 loops=3)
>> vs
>> -> Seq Scan on partsupp (cost=0.00..1052934.38 rows=31994838 width=22) (actual TIME=0.037..37865.003 rows=32000000 loops=3)
>>
>> Can you reproduce the speed difference using dd ?
>> time sudo dd if=/dev/sdX of=/dev/null bs=1M count=32K skip=$((128*$RANDOM/32)) # set bs to optimal_io_size
>>
>> Or: bonnie++ -f -n0
>>
>> What OS/kernel are you using? LVM? filesystem? I/O scheduler? partitions?
>> readahead? blockdev --getra
>>
>> If you're running under linux, maybe you can just send the output of:
>> for a in /sys/block/sdX/queue/*; do echo "$a `cat $a`"; done
>> or: tail /sys/block/sdX/queue/{minimum_io_size,optimal_io_size,read_ahead_kb,scheduler,rotational,max_sectors_kb,logical_block_size,physical_block_size}
>>
>> Justin
From | Date | Subject | |
---|---|---|---|
Next Message | Justin Pryzby | 2018-01-15 03:09:41 | Re: HDD vs SSD without explanation |
Previous Message | Neto pr | 2018-01-15 02:25:40 | Re: HDD vs SSD without explanation |