60
SSD vs. HDD / WAL, indexy a fsync SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Prague PostgreSQL Developers Day 2012 Tomáš Vondra ( Tomáš Vondra ( [email protected] [email protected])

SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra ([email protected])

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

SSD vs. HDD / WAL, indexy a fsyncSSD vs. HDD / WAL, indexy a fsync

Prague PostgreSQL Developers Day 2012Prague PostgreSQL Developers Day 2012

Tomáš Vondra (Tomáš Vondra ([email protected]@fuzzy.cz))

Page 2: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

What a great day for science!

Page 3: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

Otázky

DB = data + indexy + transakční log (WAL)

● Co umístit na samostatný disk?● Co patří na HDD a co na SSD?● Jakou fsync metodu zvolit?● Jak to závisí na typu zátěže?

Page 4: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

Charakteristiky disků

7.2k SATA spinners

● ~ 120 IOPS

● sekvenčně: ~ 100 MB/s

● náhodně: ~ 0.5 MB/s

● 512B / 4kB sektory, běžně kapacita několik TB

SSDs (Intel 320 120GB)

● (deseti)tisíce IOPS

● čtení: ~ 250 MB/s

● zápis: ~ 120 MB/s

● 512kB bloky, kapacita desítky / stovky GB

Page 5: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

Consumer-level ...

● jen „obyčejné“ SATA-II disky● demonstrace obecných I/O charakteristik● aplikovatelné na srovnatelný hw

● 15k SAS disky, podobné SATA SSD disky, …

● obtížnější aplikace na● specializovaná SSD (fusion-io, VeloDrive/Z-Drive, ...)● RAID pole s dobrým řadičem (write cache)● výrazně odlišný workload

Page 6: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

Benchmarky

OLTP (pgbench)● hodně „malých“ transakcí (typicky přes primární klíče)● počet transakcí za vteřinu (tps)● read-only nebo read-write (50:50, netypický poměr)

TPC-H● velké dotazy nad velkým objemem dat● počet vteřin (trvání loadu, vyhodnocení dotazu)● GROUP BY, velké joiny, … (i hodně náhodného I/O)

data >> RAM

Page 7: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

Kdybych měl tolik peněz

jako Bruce Wayne ...

Page 8: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

Dosahovat výkon za hromady

peněz není velké umění.

Page 9: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

výkon / cena

Page 10: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

výkon / (cena / GB)

Page 11: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

$ / GB

HDD (Maxtor DiamondMax 21)● 500 GB SATA II 7.2k ~ 2000 Kč => 4 Kč / GB

SSD (Intel 320)● 120 GB SATA II ~ 4200 Kč => 40 Kč / GB

kombinace (naivní model)● vážený součet podle objemu (indexy, WAL, data, ...)● 20% HDD + 80% SSD => 33 Kč / GB● 80% HDD + 20% SSD => 11 Kč / GB

Page 12: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

výkon / (cena / GB)

pgbench na HDD● výkon 120 tps

● cena 4 Kč / GB

● metrika = 120 / 4 = 30

pgbench na SSD● výkon 4000 tps

● cena 40 Kč / GB

● metrika = 4000 / 40 = 100

100 > 30

Page 13: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

78,31% všech statistik je vymyšlených

Page 14: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

Důležitá jsou vaše čísla!

Page 15: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

data vs. indexydata vs. indexy

Page 16: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

OLTP (pgbench)

Page 17: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

DATA

=ssd

-2 ID

X=ssd-

2

DATA

=ssd

-2 ID

X=hd

d-1

DATA

=ssd

-2 ID

X=ssd-

1

DATA

=hdd

-2 ID

X=hd

d-2

DATA

=hdd

-2 ID

X=hd

d-1

DATA

=hdd

-2 ID

X=ssd-

10

1000

2000

3000

4000

5000

6000

pgbench s oddělením dat a indexů

read-only i read-write [tps, vyšší hodnoty jsou lepší]

read-only read-write

Page 18: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

DATA

=ssd

-2 ID

X=ssd-

2

DATA

=ssd

-2 ID

X=hd

d-1

DATA

=ssd

-2 ID

X=ssd-

1

DATA

=hdd

-2 ID

X=hd

d-2

DATA

=hdd

-2 ID

X=hd

d-1

DATA

=hdd

-2 ID

X=ssd-

10

20

40

60

80

100

120

140

160

pgbench s oddělením dat a indexů (80:20)

read-only i read-write [výkon/$, vyšší hodnoty jsou lepší]

read-only read-write

Page 19: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

DSS/DWH (TPC-H)

Page 20: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

DA

TA=s

sd-2

IDX=

ssd-

2

DATA

=ssd

-2 ID

X=hd

d-1

DATA

=ssd

-2 ID

X=ssd-

1

DATA

=hdd

-2 ID

X=hd

d-2

DATA

=hdd

-2 ID

X=hd

d-1

DATA

=hdd

-2 ID

X=ssd-

10

50

100

150

200

250

300

TPC-H výkon / dotaz č. 17

počet vteřin na vyhodnocení [nižší hodnoty jsou lepší]

Page 21: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

DA

TA=s

sd-2

IDX=

ssd-

2

DATA

=ssd

-2 ID

X=hd

d-1

DATA

=ssd

-2 ID

X=ssd-

1

DATA

=hdd

-2 ID

X=hd

d-2

DATA

=hdd

-2 ID

X=hd

d-1

DATA

=hdd

-2 ID

X=ssd-

10123456789

10

TPC-H výkon / dotaz č. 17 (80:20)

výkon / $ [vyšší hodnoty jsou lepší]

Page 22: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

data vs. indexy

SSD● výborná investice pro OLTP zátěž (pgbench)● ne tak dobré pro DWS/DSS-like workload

HDD● OLTP výkon nemůže konkurovat SSD (ani výkon/cena)● v DWH často zdatně konkuruje SSD

kombinace SSD a HDD● nic moc (když musíte, tak na SSD dejte data)

Page 23: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

data vs. WALdata vs. WAL

Page 24: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

Write Ahead Log

● aka transakční log● aka XLog● aka REDO

● informace o modifikacích dat● životně důležité pro recovery● při dotazování se nepoužívá

Page 25: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

OLTP (pgbench)

Page 26: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

DATA

=ssd

-2 W

AL=h

dd-1

DATA

=ssd

-2 W

AL=s

sd-2

DATA

=ssd

-2 W

AL=s

sd-1

DATA

=hdd

-2 W

AL=h

dd-2

DATA

=hdd

-2 W

AL=h

dd-1

DATA

=hdd

-2 W

AL=s

sd-1

0500

10001500200025003000350040004500

oddělení dat a WAL

pgbench (read-only i read-write) [počet transakcí za vteřinu]

read-only read-write

Page 27: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

DATA

=ssd

-2 W

AL=h

dd-1

DATA

=ssd

-2 W

AL=s

sd-2

DATA

=ssd

-2 W

AL=s

sd-1

DATA

=hdd

-2 W

AL=h

dd-2

DATA

=hdd

-2 W

AL=h

dd-1

DATA

=hdd

-2 W

AL=s

sd-1

0

20

40

60

80

100

120

140

oddělení dat a WAL

pgbench (read-only i read-write) [výkon/$]

read-only read-write

Page 28: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

data vs. WAL / OLTP

● data – spousta náhodných přístupů => SSD● WAL – sekvenční zápisy => HDD● WAL i data na stejném disku => terror :-(

● databáze musí seekovat (přístup k datům)● důsledek: zápisy do WAL pak nejsou sekvenční

● skvělá je kombinace data na SSD a WAL na HDD● rozdíl vs. SSD+SSD ~ rychlost sekvenčního zápisu

(HDD má jen 70 MB/s, SSD má 130 MB/s)● s rychlejším HDD diskem (RAID) => asi ideál :-)

Page 29: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

DSS/DWH (TPC-H)

Page 30: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

DATA

=ssd

-2 W

AL=h

dd-1

DATA

=ssd

-2 W

AL=s

sd-2

DATA

=ssd

-2 W

AL=s

sd-1

DATA

=hdd

-2 W

AL=h

dd-2

DATA

=hdd

-2 W

AL=h

dd-1

DATA

=hdd

-2 W

AL=s

sd-1

0100200300400500600700800

TPC-H benchmark / load

příprava dat (load, apod.) [počet vteřin, nižší hodnoty jsou lepší]

load primary keys foreign keys index analyze

Page 31: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

DATA

=ssd

-2 W

AL=h

dd-1

DATA

=ssd

-2 W

AL=s

sd-2

DATA

=ssd

-2 W

AL=s

sd-1

DATA

=hdd

-2 W

AL=h

dd-2

DATA

=hdd

-2 W

AL=h

dd-1

DATA

=hdd

-2 W

AL=s

sd-1

0

102030405060

7080

TPC-H benchmark / load (80:20)

příprava dat (load, apod.) [výkon/$, vyšší hodnoty jsou lepší]

load primary keys foreign keys index analyze

Page 32: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

data vs. WAL / TPC-H setup

● WAL nijak neovlivňuje dotazy● výkon/$ - pevné disky bezpečně vedou● nižší výkon <=> nižší sekvenční rychlost● rychlejší HDD => výkon srovnatelný se SSD

Page 33: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

fsync metodyfsync metody

Page 34: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

pg_test_fsync

● srovnání chování různých metod fsyncu● fsync / open_sync● fdatasync / open_datasync

● podpora závisí na● souborovém systému, verzi kernelu, …

● vztah na „direct I/O“● standardně „write + write + … + fsync“ (fs cache)● obcházení page cache (ne vždy užitečná - řadiče)

Page 35: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

fdatasync open_datasync fsync open_sync0

20

40

60

80

100

120

140

0

2000

4000

6000

8000

10000

12000

14000

pg_test_fsync / HDD a SSD

8kB page writes

HDD SSD

Page 36: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

fdatasync open_datasync fsync open_sync0

20

40

60

80

100

120

140

0

2000

4000

6000

8000

10000

12000

14000

pg_test_fsync / HDD a SSD

8kB page writes

HDD SSD

7%

7%

Page 37: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

OLTP (pgbench)

Page 38: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

fdatasync open_datasync fsync open_sync0

10

20

30

40

50

60

0

200

400

600

800

1000

1200

1400

SSD vs. HDD / read-write pgbench

počet transakcí za vteřinu [vyšší hodnoty jsou lepší]

hdd ssd

Page 39: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

DSS/DWH (TPC-H)

Page 40: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

fdat

asyn

c / h

dd-2

open

_dat

asyn

c / h

dd-2

fsyn

c / h

dd-2

open

_syn

c / h

dd-2

fdat

asyn

c / s

sd-2

open

_dat

asyn

c / s

sd-2

fsyn

c / s

sd-2

open

_syn

c / s

sd-2

0

100

200

300

400

500

600

700

TPC-H set-up / load dat

různé fsync metody / wal_level [počet vteřin, nižší hodnoty jsou lepší]

archive minimal

Page 41: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

fd

atas

ync

/ hdd-

2

open

_dat

asyn

c / h

dd-2

fsyn

c / h

dd-2

open

_syn

c / h

dd-2

fdat

asyn

c / s

sd-2

open

_dat

asyn

c / s

sd-2

fsync

/ ss

d-2

open

_syn

c / ss

d-2

0

100

200

300

400

500

600

700

TPC-H set-up / load dat

různé fsync metody / wal_level [počet vteřin, nižší hodnoty jsou lepší]

archive minimal

Page 42: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)
Page 43: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

fsync metody

● značný rozdíl mezi sync a datasync ~ 20%● open_* - žádný měřitelný efekt● wal_level = minimal

● cca 30% zrychlení při loadu dat● pokud nepotřebujete „archive“

Page 44: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

Cloud?Cloud?

Page 45: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

There’s a rumor that Stewart Smith and

I might do a Q&A about databases in

the cloud. If it happens, it will involve

lots of pessimism and swearing.

Selena Deckelmann

http://chesnok.com

Page 46: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

Závěrem ...Závěrem ...

Page 47: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

Závěrem ...

● přínos SSD závisí na workloadu (OLTP)● pgbench je extrém (zápis:čtení ~ 1:1)

● SSD výrazně více zatěžují CPU než HDD● spolehlivost SSD je otázka● HDD i SSD se skládají z „bloků“

● HDD mají plotny, SSD mají moduly (např. 40 GB)● více „bloků“ => vyšší sekvenční výkon

● rychlejší disky (15k SAS) – horší cena/výkon

Page 48: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

Každý systém má bottleneck ...

Page 49: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

Read-only latence

Page 50: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

Read-write latence

Page 51: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

load na SSD

Page 52: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)
Page 53: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

r/w pgbench

Page 54: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)
Page 55: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)
Page 56: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

We care more about your data

than our benchmarks …

... and you should too!

Page 57: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

Ne tak zřejmé ...

● SSD vám nezaručí vyšší výkon● závisí na workloadu (OLTP/DWH, read/write)● závisí na části databáze na SSD (indexy, WAL)● mohou být levnější varianty (hot standby, ...)● závisí na mount options (barriers, …)

● SSD výrazně více zatěžují CPU● menší iowait => větší sys/user time● každý systém má bottleneck

Page 58: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

Ne tak zřejmé ...

spolehlivost SSD je otázka● málo dat, každé nové SSD je víceméně „jiné“● S.M.A.R.T. víceméně jen pro wearout :-(● failuje hlavně firmware (řadič) – nepředvídatelné● příklad: Intel 8MB bug

RAID a SSD● ne každý RAID umí spolupracovat (TRIM)● stejně jako u HDD stavět RAID z více šarží● firmware je většinou stejný

Page 59: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

SSD a HDD

HDD● skládají se z ploten● počet ploten, vyšší hustota => vyšší rychlost● náhodné operace dány rychlostí otáčení● rychlost se mění i podle pozice na disku

SSD● skládají se z modulů (např. Intel á 40GB)● více modulů => vyšší sekvenční rychlost● náhodné operace dány řadičem

Page 60: SSD vs. HDD / WAL, indexy a fsync · 2020. 11. 8. · SSD vs. HDD / WAL, indexy a fsync Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz)

Rychlejší disky (15k)?

cca 2x vyšší výkon● 7.2k SATA - 120 IOPS● 15k SAS - 250 IOPS (až 400)

4x vyšší cena● 300 GB 7.2k SATA - 9600 Kč● 300 GB 15k SAS - 2100 Kč

celkově ~ 2x horší metrika (tps / $ / GB)