SlideShare a Scribd company logo
1 of 33
Download to read offline
Stainless Steel Elephant
Standing on the shoulders of giants
Alex Chistyakov, Principal Engineer at Git in Sky
Feb 05 2016, PgConf.Russia 2016
Who we are
●
A small consulting company from SPb., Russia
●
Web ops engineers, performance engineers
●
Automation engineers
●
PostgreSQL fans
Who are you?
●
DBAs?
●
DBDs?
●
DB(.*)s?
●
PostgreSQL fans?
●
Performance engineering, anyone?
OK, what is going on here?
●
FreeBSD!
OK, what is going on here?
●
FreeBSD!
●
Not scared? Let's try again!
OK, what is going on here?
●
FreeBSD!
●
Not scared? Let's try again!
●
ZFS!
OK, what is going on here?
●
FreeBSD!
●
Not scared? Let's try again!
●
ZFS!
●
Hmm, you still there?
OK, what is going on here?
●
FreeBSD!
●
Not scared? Let's try again!
●
ZFS!
●
Hmm, you still there?
●
DragonFly BSD! HAMMER!
OK, what is going on here?
●
FreeBSD!
●
Not scared? Let's try again!
●
ZFS!
●
Hmm, you still there?
●
DragonFly BSD! HAMMER!
●
Okay, enough for you
Hardware configuration
●
Dell R430
●
32Gb RAM
●
PERC H730 mini
●
Two Edge Boost Pro P SSDs in RAID0
●
2 x Xeon(R) CPU E5-2630 v3 @ 2.40GHz
Ready, set, go!
●
BTW, the plan is:
●
Install something very elite
●
Get great results
●
Install something less elite
●
Get not so great results
●
Compare and swap
●
PROFIT!
DragonFly BSD 4.4.1 (the latest)
●
It's dead, Jim!
●
Was not able
to even install it
DragonFly BSD 4.2.4
●
DOA too
DragonFly BSD 4.0.6
●
Hoorah!
●
Well, that's elite enough
●
[root@dfbsd /usr]# uname -a
DragonFly dfbsd.gitinsky.com 4.0-RELEASE DragonFly v4.0.6-RELEASE #0: Fri Jun 12
19:57:23 EDT 2015
root@www.shiningsilence.com:/usr/obj/home/justin/release/4_0/sys/X86_64_GENERIC x86_64
[root@dfbsd /usr]#
Now you have two problems
●
Okay, what's next?
●
“pgbench -i -s 1000 --foreign-keys pgbench” to load some data
●
“pgbench -T 300 -P 10 -c N -j N -r pgbench” to run some tests
●
A carefully trained monkey to interpret the results
Loading…...
●
date; pgbench -i -s 1000 --foreign-keys pgbench; date
Fri Feb 5 03:33:28 MSK 2016
creating tables...
100000000 of 100000000 tuples (100%) done (elapsed 257.56 s, remaining 0.00 s)
vacuum...
set primary keys...
set foreign keys...
done.
Fri Feb 5 03:43:30 MSK 2016
Here we go!
●
X – num of clients/threads, Y – transactions per second
1 4 8 12
0
200
400
600
800
1000
1200
1400
1600
1800
2000
DragonflyBSD
sync
async
A note on observability tools
●
I'm in your gdb killing your backendz!
●
[root@dfbsd /home/chistyakov]# gdb -ex "set pagination 0" -ex "thread apply all bt" -batch -p
436012
Couldn't get registers: Device busy.
Couldn't get registers: Device busy.
Couldn't get registers: Device busy.
Thread 1 (process 436012):
Couldn't get registers: Device busy.
Quitting: ptrace: Device busy.
[root@dfbsd /home/chistyakov]#
FreeBSD 10.2
●
BSD guys,
what is wrong
with you?
FreeBSD 9.3
●
This is how
a deferred
success
looks like
Okay, SmartOS then
●
100000000 of 100000000 tuples (100%) done (elapsed 107.03 s, remaining 0.00 s).
vacuum...
set primary keys...
set foreign keys...
done.
real 4m27.237s
user 0m23.381s
sys 0m2.118s
bash-4.1$
A note on observability tools
●
zpool iostat 1
zones 25,3G 419G 0 4,83K 0 417M
zones 25,3G 419G 0 4,63K 0 400M
zones 25,3G 419G 0 4,58K 0 386M
zones 25,4G 419G 0 4,55K 0 366M
zones 25,4G 419G 0 4,57K 0 364M
zones 25,4G 419G 0 4,51K 0 378M
zones 25,4G 419G 0 4,20K 0 358M
zones 25,4G 419G 0 4,83K 0 422M
zones 25,5G 419G 0 4,32K 0 360M
Sync/async, SmartOS*
●
* This chart is a lie
1 4 8 12
0
2000
4000
6000
8000
10000
12000
14000
sync
async
Lies, damned lies and LZO
●
Compression MUST be turned on, period
●
ZFS record size: 128K by default
●
PostgreSQL block: 8K
●
Compressing 128K blocks is more efficient
●
Random reads: 8K → 128K amplification
●
Fight!
The joy of ZFS
●
* This chart is probably a lie
1 4 8 12
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
nocompression128k
compression8k
compression128k
Guess which one is 128K?
●
zones/var refcompressratio 5.20x -
zones/var written 3,31G -
zones/var logicalused 16,8G -
zones/var logicalreferenced 16,8G -
●
zones/var refcompressratio 11.64x -
zones/var written 1,27G -
zones/var logicalused 14,7G -
zones/var logicalreferenced 14,7G -
Ubuntu 14.04 LTS
●
100000000 of 100000000 tuples (100%) done (elapsed 65.91 s, remaining 0.00 s)
vacuum...
set primary keys...
set foreign keys...
done.
real 2m54.867s
user 0m27.372s
sys 0m0.872s
postgres@ubuntu:~$
Sync/async, Ubuntu/XFS
●
This chart is not a lie
1 4 8 12
0
2000
4000
6000
8000
10000
12000
14000
16000
sync
async
Synchronous commit
●
SmartOS/ZFS (compression, 8K block) – Ubuntu/XFS : 1 - 1
1 4 8 12
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
dfbsd
smartos
ubuntuxfs
ubuntubtrfs
Asynchronous commit
●
And, finally, we have a winner! Ubuntu/XFS
1 4 8 12
0
2000
4000
6000
8000
10000
12000
14000
16000
dfbsd
smartos
ubuntuxfs
ubuntubtrfs
Conclusions
●
Hammers don't fly at decent speed
●
FreeBSD is very elite
●
But you still can use ZFS if you are not elite enough for FreeBSD
●
Ubuntu and XFS are not even close to be elite but are very fast
●
SmartOS? Never heard of it!
Q & A
●
- Why did you tweak ZFS but did not tweak BTRFS and HAMMER?
●
- Because I'm a ZFS zealot, you heretics!
That's all folks!
●
Thank you!
●
alex@gitinsky.com
●
http://gitinsky.com
●
http://meetup.com/DevOps-40

More Related Content

What's hot

Profiling and optimizing go programs
Profiling and optimizing go programsProfiling and optimizing go programs
Profiling and optimizing go programsBadoo Development
 
Pylons + Tokyo Cabinet
Pylons + Tokyo CabinetPylons + Tokyo Cabinet
Pylons + Tokyo CabinetBen Cheng
 
Доклад Антона Поварова "Go in Badoo" с Golang Meetup
Доклад Антона Поварова "Go in Badoo" с Golang MeetupДоклад Антона Поварова "Go in Badoo" с Golang Meetup
Доклад Антона Поварова "Go in Badoo" с Golang MeetupBadoo Development
 
Rapid Application Design in Financial Services
Rapid Application Design in Financial ServicesRapid Application Design in Financial Services
Rapid Application Design in Financial ServicesAerospike
 
Breaking the RpiDocker challenge
Breaking the RpiDocker challenge Breaking the RpiDocker challenge
Breaking the RpiDocker challenge Nicolas De Loof
 
Practical SystemTAP basics: Perl memory profiling
Practical SystemTAP basics: Perl memory profilingPractical SystemTAP basics: Perl memory profiling
Practical SystemTAP basics: Perl memory profilingLubomir Rintel
 
Whoops! I Rewrote It in Rust
Whoops! I Rewrote It in RustWhoops! I Rewrote It in Rust
Whoops! I Rewrote It in RustScyllaDB
 
OSNoise Tracer: Who Is Stealing My CPU Time?
OSNoise Tracer: Who Is Stealing My CPU Time?OSNoise Tracer: Who Is Stealing My CPU Time?
OSNoise Tracer: Who Is Stealing My CPU Time?ScyllaDB
 
Bsdtw17: mariusz zaborski: case studies of sandboxing base system with capsicum
Bsdtw17: mariusz zaborski: case studies of sandboxing base system with capsicumBsdtw17: mariusz zaborski: case studies of sandboxing base system with capsicum
Bsdtw17: mariusz zaborski: case studies of sandboxing base system with capsicumScott Tsai
 
Continuous Go Profiling & Observability
Continuous Go Profiling & ObservabilityContinuous Go Profiling & Observability
Continuous Go Profiling & ObservabilityScyllaDB
 
Solving some of the scalability problems at booking.com
Solving some of the scalability problems at booking.comSolving some of the scalability problems at booking.com
Solving some of the scalability problems at booking.comIvan Kruglov
 
Logstash: Get to know your logs
Logstash: Get to know your logsLogstash: Get to know your logs
Logstash: Get to know your logsSmartLogic
 
High-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uringHigh-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uringScyllaDB
 
Ansible
AnsibleAnsible
Ansiblegnosek
 
WebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect Toolbox
WebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect ToolboxWebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect Toolbox
WebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect ToolboxWebCamp
 
Rust Is Safe. But Is It Fast?
Rust Is Safe. But Is It Fast?Rust Is Safe. But Is It Fast?
Rust Is Safe. But Is It Fast?ScyllaDB
 
Writing External Rsyslog Plugins
Writing External Rsyslog PluginsWriting External Rsyslog Plugins
Writing External Rsyslog PluginsRainer Gerhards
 

What's hot (20)

Profiling and optimizing go programs
Profiling and optimizing go programsProfiling and optimizing go programs
Profiling and optimizing go programs
 
erlang 101
erlang 101erlang 101
erlang 101
 
Pylons + Tokyo Cabinet
Pylons + Tokyo CabinetPylons + Tokyo Cabinet
Pylons + Tokyo Cabinet
 
Доклад Антона Поварова "Go in Badoo" с Golang Meetup
Доклад Антона Поварова "Go in Badoo" с Golang MeetupДоклад Антона Поварова "Go in Badoo" с Golang Meetup
Доклад Антона Поварова "Go in Badoo" с Golang Meetup
 
Rapid Application Design in Financial Services
Rapid Application Design in Financial ServicesRapid Application Design in Financial Services
Rapid Application Design in Financial Services
 
Breaking the RpiDocker challenge
Breaking the RpiDocker challenge Breaking the RpiDocker challenge
Breaking the RpiDocker challenge
 
Practical SystemTAP basics: Perl memory profiling
Practical SystemTAP basics: Perl memory profilingPractical SystemTAP basics: Perl memory profiling
Practical SystemTAP basics: Perl memory profiling
 
Whoops! I Rewrote It in Rust
Whoops! I Rewrote It in RustWhoops! I Rewrote It in Rust
Whoops! I Rewrote It in Rust
 
Java performance
Java performanceJava performance
Java performance
 
OSNoise Tracer: Who Is Stealing My CPU Time?
OSNoise Tracer: Who Is Stealing My CPU Time?OSNoise Tracer: Who Is Stealing My CPU Time?
OSNoise Tracer: Who Is Stealing My CPU Time?
 
Bsdtw17: mariusz zaborski: case studies of sandboxing base system with capsicum
Bsdtw17: mariusz zaborski: case studies of sandboxing base system with capsicumBsdtw17: mariusz zaborski: case studies of sandboxing base system with capsicum
Bsdtw17: mariusz zaborski: case studies of sandboxing base system with capsicum
 
Continuous Go Profiling & Observability
Continuous Go Profiling & ObservabilityContinuous Go Profiling & Observability
Continuous Go Profiling & Observability
 
Solving some of the scalability problems at booking.com
Solving some of the scalability problems at booking.comSolving some of the scalability problems at booking.com
Solving some of the scalability problems at booking.com
 
Logstash: Get to know your logs
Logstash: Get to know your logsLogstash: Get to know your logs
Logstash: Get to know your logs
 
High-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uringHigh-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uring
 
Ansible
AnsibleAnsible
Ansible
 
WebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect Toolbox
WebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect ToolboxWebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect Toolbox
WebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect Toolbox
 
Rust Is Safe. But Is It Fast?
Rust Is Safe. But Is It Fast?Rust Is Safe. But Is It Fast?
Rust Is Safe. But Is It Fast?
 
Performance
PerformancePerformance
Performance
 
Writing External Rsyslog Plugins
Writing External Rsyslog PluginsWriting External Rsyslog Plugins
Writing External Rsyslog Plugins
 

Viewers also liked

My talk on monitoring systems at RootConf 2016
My talk on monitoring systems at RootConf 2016My talk on monitoring systems at RootConf 2016
My talk on monitoring systems at RootConf 2016Alex Chistyakov
 
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
"Мы два месяца долбались, а потом построили индекс" (c) АксеновAlex Chistyakov
 
My talk on LeoFS, Highload++ 2014
My talk on LeoFS, Highload++ 2014My talk on LeoFS, Highload++ 2014
My talk on LeoFS, Highload++ 2014Alex Chistyakov
 
Ansible in the enterprise
Ansible in the enterpriseAnsible in the enterprise
Ansible in the enterpriseAlex Chistyakov
 
My talk on Salt and Ansible from DevConf 2014
My talk on Salt and Ansible from DevConf 2014My talk on Salt and Ansible from DevConf 2014
My talk on Salt and Ansible from DevConf 2014Alex Chistyakov
 
My talk on Hadoop stack operations engineering at OSPCon
My talk on Hadoop stack operations engineering at OSPConMy talk on Hadoop stack operations engineering at OSPCon
My talk on Hadoop stack operations engineering at OSPConAlex Chistyakov
 
My talk on Docker, Youcon 2015
My talk on Docker, Youcon 2015My talk on Docker, Youcon 2015
My talk on Docker, Youcon 2015Alex Chistyakov
 
Benchmarking PostgreSQL in Linux and FreeBSD
Benchmarking PostgreSQL in Linux and FreeBSDBenchmarking PostgreSQL in Linux and FreeBSD
Benchmarking PostgreSQL in Linux and FreeBSDAlex Chistyakov
 
NoSQL — неспроста ли это "ЖЖЖ"?
NoSQL — неспроста ли это "ЖЖЖ"?NoSQL — неспроста ли это "ЖЖЖ"?
NoSQL — неспроста ли это "ЖЖЖ"?Daniel Podolsky
 
My talk at Linux Piter 2016
My talk at Linux Piter 2016My talk at Linux Piter 2016
My talk at Linux Piter 2016Alex Chistyakov
 
My talk at CEE-SECR 2016
My talk at CEE-SECR 2016My talk at CEE-SECR 2016
My talk at CEE-SECR 2016Alex Chistyakov
 
My talk at YouCon Saratov 2016
My talk at YouCon Saratov 2016My talk at YouCon Saratov 2016
My talk at YouCon Saratov 2016Alex Chistyakov
 
My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016Alex Chistyakov
 
My talk on PgDay Russia 2014
My talk on PgDay Russia 2014My talk on PgDay Russia 2014
My talk on PgDay Russia 2014Alex Chistyakov
 
My talk on Graphite stack on 58it.ru
My talk on Graphite stack on 58it.ruMy talk on Graphite stack on 58it.ru
My talk on Graphite stack on 58it.ruAlex Chistyakov
 
Why we did not choose Hadoop
Why we did not choose HadoopWhy we did not choose Hadoop
Why we did not choose HadoopSerguei Gitinsky
 
My talk on using LVM thin provisioning from SPbLUG/DevOps-40 meetup 25.06.14
My talk on using LVM thin provisioning from SPbLUG/DevOps-40 meetup 25.06.14My talk on using LVM thin provisioning from SPbLUG/DevOps-40 meetup 25.06.14
My talk on using LVM thin provisioning from SPbLUG/DevOps-40 meetup 25.06.14Alex Chistyakov
 

Viewers also liked (20)

My talk on monitoring systems at RootConf 2016
My talk on monitoring systems at RootConf 2016My talk on monitoring systems at RootConf 2016
My talk on monitoring systems at RootConf 2016
 
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
 
My talk on LeoFS, Highload++ 2014
My talk on LeoFS, Highload++ 2014My talk on LeoFS, Highload++ 2014
My talk on LeoFS, Highload++ 2014
 
Ansible in the enterprise
Ansible in the enterpriseAnsible in the enterprise
Ansible in the enterprise
 
My talk on Salt and Ansible from DevConf 2014
My talk on Salt and Ansible from DevConf 2014My talk on Salt and Ansible from DevConf 2014
My talk on Salt and Ansible from DevConf 2014
 
On Docker
On DockerOn Docker
On Docker
 
My talk on Hadoop stack operations engineering at OSPCon
My talk on Hadoop stack operations engineering at OSPConMy talk on Hadoop stack operations engineering at OSPCon
My talk on Hadoop stack operations engineering at OSPCon
 
My talk on Docker, Youcon 2015
My talk on Docker, Youcon 2015My talk on Docker, Youcon 2015
My talk on Docker, Youcon 2015
 
Benchmarking PostgreSQL in Linux and FreeBSD
Benchmarking PostgreSQL in Linux and FreeBSDBenchmarking PostgreSQL in Linux and FreeBSD
Benchmarking PostgreSQL in Linux and FreeBSD
 
NoSQL — неспроста ли это "ЖЖЖ"?
NoSQL — неспроста ли это "ЖЖЖ"?NoSQL — неспроста ли это "ЖЖЖ"?
NoSQL — неспроста ли это "ЖЖЖ"?
 
My talk at Linux Piter 2016
My talk at Linux Piter 2016My talk at Linux Piter 2016
My talk at Linux Piter 2016
 
My talk at CEE-SECR 2016
My talk at CEE-SECR 2016My talk at CEE-SECR 2016
My talk at CEE-SECR 2016
 
My talk at LVEE 2016
My talk at LVEE 2016My talk at LVEE 2016
My talk at LVEE 2016
 
My talk at YouCon Saratov 2016
My talk at YouCon Saratov 2016My talk at YouCon Saratov 2016
My talk at YouCon Saratov 2016
 
My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016
 
My talk on PgDay Russia 2014
My talk on PgDay Russia 2014My talk on PgDay Russia 2014
My talk on PgDay Russia 2014
 
My talk on Graphite stack on 58it.ru
My talk on Graphite stack on 58it.ruMy talk on Graphite stack on 58it.ru
My talk on Graphite stack on 58it.ru
 
Using Ansible
Using AnsibleUsing Ansible
Using Ansible
 
Why we did not choose Hadoop
Why we did not choose HadoopWhy we did not choose Hadoop
Why we did not choose Hadoop
 
My talk on using LVM thin provisioning from SPbLUG/DevOps-40 meetup 25.06.14
My talk on using LVM thin provisioning from SPbLUG/DevOps-40 meetup 25.06.14My talk on using LVM thin provisioning from SPbLUG/DevOps-40 meetup 25.06.14
My talk on using LVM thin provisioning from SPbLUG/DevOps-40 meetup 25.06.14
 

Similar to My talk from PgConf.Russia 2016

High performance json- postgre sql vs. mongodb
High performance json- postgre sql vs. mongodbHigh performance json- postgre sql vs. mongodb
High performance json- postgre sql vs. mongodbWei Shan Ang
 
Streaming huge databases using logical decoding
Streaming huge databases using logical decodingStreaming huge databases using logical decoding
Streaming huge databases using logical decodingAlexander Shulgin
 
Don't Give Credit: Hacking Arcade Machines
Don't Give Credit: Hacking Arcade MachinesDon't Give Credit: Hacking Arcade Machines
Don't Give Credit: Hacking Arcade MachinesMichael Scovetta
 
PGConf APAC 2018 - High performance json postgre-sql vs. mongodb
PGConf APAC 2018 - High performance json  postgre-sql vs. mongodbPGConf APAC 2018 - High performance json  postgre-sql vs. mongodb
PGConf APAC 2018 - High performance json postgre-sql vs. mongodbPGConf APAC
 
UKOUG 2011: Practical MySQL Tuning
UKOUG 2011: Practical MySQL TuningUKOUG 2011: Practical MySQL Tuning
UKOUG 2011: Practical MySQL TuningFromDual GmbH
 
Dynamic Change Data Capture with Flink CDC and Consistent Hashing
Dynamic Change Data Capture with Flink CDC and Consistent HashingDynamic Change Data Capture with Flink CDC and Consistent Hashing
Dynamic Change Data Capture with Flink CDC and Consistent HashingHostedbyConfluent
 
Dynamic Change Data Capture with Flink CDC and Consistent Hashing
Dynamic Change Data Capture with Flink CDC and Consistent HashingDynamic Change Data Capture with Flink CDC and Consistent Hashing
Dynamic Change Data Capture with Flink CDC and Consistent HashingYaroslav Tkachenko
 
How to build TiDB
How to build TiDBHow to build TiDB
How to build TiDBPingCAP
 
Some analysis of BlueStore and RocksDB
Some analysis of BlueStore and RocksDBSome analysis of BlueStore and RocksDB
Some analysis of BlueStore and RocksDBXiao Yan Li
 
London Spark Meetup Project Tungsten Oct 12 2015
London Spark Meetup Project Tungsten Oct 12 2015London Spark Meetup Project Tungsten Oct 12 2015
London Spark Meetup Project Tungsten Oct 12 2015Chris Fregly
 
Parallel computing in bioinformatics t.seemann - balti bioinformatics - wed...
Parallel computing in bioinformatics   t.seemann - balti bioinformatics - wed...Parallel computing in bioinformatics   t.seemann - balti bioinformatics - wed...
Parallel computing in bioinformatics t.seemann - balti bioinformatics - wed...Torsten Seemann
 
Speedrunning the Open Street Map osm2pgsql Loader
Speedrunning the Open Street Map osm2pgsql LoaderSpeedrunning the Open Street Map osm2pgsql Loader
Speedrunning the Open Street Map osm2pgsql LoaderGregSmith458515
 
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...MongoDB
 
hashdays 2011: Ange Albertini - Such a weird processor - messing with x86 opc...
hashdays 2011: Ange Albertini - Such a weird processor - messing with x86 opc...hashdays 2011: Ange Albertini - Such a weird processor - messing with x86 opc...
hashdays 2011: Ange Albertini - Such a weird processor - messing with x86 opc...Area41
 

Similar to My talk from PgConf.Russia 2016 (20)

High performance json- postgre sql vs. mongodb
High performance json- postgre sql vs. mongodbHigh performance json- postgre sql vs. mongodb
High performance json- postgre sql vs. mongodb
 
Streaming huge databases using logical decoding
Streaming huge databases using logical decodingStreaming huge databases using logical decoding
Streaming huge databases using logical decoding
 
Don't Give Credit: Hacking Arcade Machines
Don't Give Credit: Hacking Arcade MachinesDon't Give Credit: Hacking Arcade Machines
Don't Give Credit: Hacking Arcade Machines
 
Killer Bugs From Outer Space
Killer Bugs From Outer SpaceKiller Bugs From Outer Space
Killer Bugs From Outer Space
 
PGConf APAC 2018 - High performance json postgre-sql vs. mongodb
PGConf APAC 2018 - High performance json  postgre-sql vs. mongodbPGConf APAC 2018 - High performance json  postgre-sql vs. mongodb
PGConf APAC 2018 - High performance json postgre-sql vs. mongodb
 
UKOUG 2011: Practical MySQL Tuning
UKOUG 2011: Practical MySQL TuningUKOUG 2011: Practical MySQL Tuning
UKOUG 2011: Practical MySQL Tuning
 
Dynamic Change Data Capture with Flink CDC and Consistent Hashing
Dynamic Change Data Capture with Flink CDC and Consistent HashingDynamic Change Data Capture with Flink CDC and Consistent Hashing
Dynamic Change Data Capture with Flink CDC and Consistent Hashing
 
Dynamic Change Data Capture with Flink CDC and Consistent Hashing
Dynamic Change Data Capture with Flink CDC and Consistent HashingDynamic Change Data Capture with Flink CDC and Consistent Hashing
Dynamic Change Data Capture with Flink CDC and Consistent Hashing
 
How to build TiDB
How to build TiDBHow to build TiDB
How to build TiDB
 
Some analysis of BlueStore and RocksDB
Some analysis of BlueStore and RocksDBSome analysis of BlueStore and RocksDB
Some analysis of BlueStore and RocksDB
 
London Spark Meetup Project Tungsten Oct 12 2015
London Spark Meetup Project Tungsten Oct 12 2015London Spark Meetup Project Tungsten Oct 12 2015
London Spark Meetup Project Tungsten Oct 12 2015
 
Parallel computing in bioinformatics t.seemann - balti bioinformatics - wed...
Parallel computing in bioinformatics   t.seemann - balti bioinformatics - wed...Parallel computing in bioinformatics   t.seemann - balti bioinformatics - wed...
Parallel computing in bioinformatics t.seemann - balti bioinformatics - wed...
 
Linuxcommands 091018105536-phpapp01
Linuxcommands 091018105536-phpapp01Linuxcommands 091018105536-phpapp01
Linuxcommands 091018105536-phpapp01
 
Drizzle Talk
Drizzle TalkDrizzle Talk
Drizzle Talk
 
Speedrunning the Open Street Map osm2pgsql Loader
Speedrunning the Open Street Map osm2pgsql LoaderSpeedrunning the Open Street Map osm2pgsql Loader
Speedrunning the Open Street Map osm2pgsql Loader
 
Lrz kurs: big data analysis
Lrz kurs: big data analysisLrz kurs: big data analysis
Lrz kurs: big data analysis
 
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...
 
hashdays 2011: Ange Albertini - Such a weird processor - messing with x86 opc...
hashdays 2011: Ange Albertini - Such a weird processor - messing with x86 opc...hashdays 2011: Ange Albertini - Such a weird processor - messing with x86 opc...
hashdays 2011: Ange Albertini - Such a weird processor - messing with x86 opc...
 
Mongodb meetup
Mongodb meetupMongodb meetup
Mongodb meetup
 
MacGyver Learns Spark
MacGyver Learns SparkMacGyver Learns Spark
MacGyver Learns Spark
 

More from Alex Chistyakov

My slides from DevOpsDays 2019
My slides from DevOpsDays 2019My slides from DevOpsDays 2019
My slides from DevOpsDays 2019Alex Chistyakov
 
My slides from BMM №3 May 2019
My slides from BMM №3 May 2019My slides from BMM №3 May 2019
My slides from BMM №3 May 2019Alex Chistyakov
 
My slides from DevOps-40 meetup Jun 2019
My slides from DevOps-40 meetup Jun 2019 My slides from DevOps-40 meetup Jun 2019
My slides from DevOps-40 meetup Jun 2019 Alex Chistyakov
 
My slides from SECR'2018
My slides from SECR'2018My slides from SECR'2018
My slides from SECR'2018Alex Chistyakov
 
My slides from the first SPb SRE community meetup at DataArt
My slides from the first SPb SRE community meetup at DataArtMy slides from the first SPb SRE community meetup at DataArt
My slides from the first SPb SRE community meetup at DataArtAlex Chistyakov
 
My slides from BMM №4 Nov 2019
My slides from BMM №4 Nov 2019My slides from BMM №4 Nov 2019
My slides from BMM №4 Nov 2019Alex Chistyakov
 
My slides from DevOps-40 meetup Oct 2019
My slides from DevOps-40 meetup Oct 2019My slides from DevOps-40 meetup Oct 2019
My slides from DevOps-40 meetup Oct 2019Alex Chistyakov
 
My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019Alex Chistyakov
 
Configuration management and Kubernetes
Configuration management and KubernetesConfiguration management and Kubernetes
Configuration management and KubernetesAlex Chistyakov
 
Python performance engineering in 2017
Python performance engineering in 2017Python performance engineering in 2017
Python performance engineering in 2017Alex Chistyakov
 
My talk at SPb SQA sub-meetup of ITGM
My talk at SPb SQA sub-meetup of ITGMMy talk at SPb SQA sub-meetup of ITGM
My talk at SPb SQA sub-meetup of ITGMAlex Chistyakov
 
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017Alex Chistyakov
 
My talk on GitHub open data at ITGM #10
 My talk on GitHub open data at ITGM #10 My talk on GitHub open data at ITGM #10
My talk on GitHub open data at ITGM #10Alex Chistyakov
 
My talk on DevOps :) at Stachka 2017
My talk on DevOps :) at Stachka 2017My talk on DevOps :) at Stachka 2017
My talk on DevOps :) at Stachka 2017Alex Chistyakov
 

More from Alex Chistyakov (20)

My slides from DevOpsDays 2019
My slides from DevOpsDays 2019My slides from DevOpsDays 2019
My slides from DevOpsDays 2019
 
My slides from BMM №3 May 2019
My slides from BMM №3 May 2019My slides from BMM №3 May 2019
My slides from BMM №3 May 2019
 
My slides from DevOps-40 meetup Jun 2019
My slides from DevOps-40 meetup Jun 2019 My slides from DevOps-40 meetup Jun 2019
My slides from DevOps-40 meetup Jun 2019
 
My slides from SECR'2018
My slides from SECR'2018My slides from SECR'2018
My slides from SECR'2018
 
My slides from the first SPb SRE community meetup at DataArt
My slides from the first SPb SRE community meetup at DataArtMy slides from the first SPb SRE community meetup at DataArt
My slides from the first SPb SRE community meetup at DataArt
 
My slides from CC'2019
My slides from CC'2019My slides from CC'2019
My slides from CC'2019
 
My slides from BMM №4 Nov 2019
My slides from BMM №4 Nov 2019My slides from BMM №4 Nov 2019
My slides from BMM №4 Nov 2019
 
My slides from DevOps-40 meetup Oct 2019
My slides from DevOps-40 meetup Oct 2019My slides from DevOps-40 meetup Oct 2019
My slides from DevOps-40 meetup Oct 2019
 
My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019
 
Configuration management and Kubernetes
Configuration management and KubernetesConfiguration management and Kubernetes
Configuration management and Kubernetes
 
Ansible and other stuff
Ansible and other stuffAnsible and other stuff
Ansible and other stuff
 
Python performance engineering in 2017
Python performance engineering in 2017Python performance engineering in 2017
Python performance engineering in 2017
 
My talk at SPb SQA sub-meetup of ITGM
My talk at SPb SQA sub-meetup of ITGMMy talk at SPb SQA sub-meetup of ITGM
My talk at SPb SQA sub-meetup of ITGM
 
My talk at SECR 2017
My talk at SECR 2017My talk at SECR 2017
My talk at SECR 2017
 
On scaling teams
On scaling teamsOn scaling teams
On scaling teams
 
MariaDB workshop
MariaDB workshopMariaDB workshop
MariaDB workshop
 
Docker for JS people
Docker for JS peopleDocker for JS people
Docker for JS people
 
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
 
My talk on GitHub open data at ITGM #10
 My talk on GitHub open data at ITGM #10 My talk on GitHub open data at ITGM #10
My talk on GitHub open data at ITGM #10
 
My talk on DevOps :) at Stachka 2017
My talk on DevOps :) at Stachka 2017My talk on DevOps :) at Stachka 2017
My talk on DevOps :) at Stachka 2017
 

Recently uploaded

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Recently uploaded (20)

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

My talk from PgConf.Russia 2016

  • 1. Stainless Steel Elephant Standing on the shoulders of giants Alex Chistyakov, Principal Engineer at Git in Sky Feb 05 2016, PgConf.Russia 2016
  • 2. Who we are ● A small consulting company from SPb., Russia ● Web ops engineers, performance engineers ● Automation engineers ● PostgreSQL fans
  • 3. Who are you? ● DBAs? ● DBDs? ● DB(.*)s? ● PostgreSQL fans? ● Performance engineering, anyone?
  • 4. OK, what is going on here? ● FreeBSD!
  • 5. OK, what is going on here? ● FreeBSD! ● Not scared? Let's try again!
  • 6. OK, what is going on here? ● FreeBSD! ● Not scared? Let's try again! ● ZFS!
  • 7. OK, what is going on here? ● FreeBSD! ● Not scared? Let's try again! ● ZFS! ● Hmm, you still there?
  • 8. OK, what is going on here? ● FreeBSD! ● Not scared? Let's try again! ● ZFS! ● Hmm, you still there? ● DragonFly BSD! HAMMER!
  • 9. OK, what is going on here? ● FreeBSD! ● Not scared? Let's try again! ● ZFS! ● Hmm, you still there? ● DragonFly BSD! HAMMER! ● Okay, enough for you
  • 10. Hardware configuration ● Dell R430 ● 32Gb RAM ● PERC H730 mini ● Two Edge Boost Pro P SSDs in RAID0 ● 2 x Xeon(R) CPU E5-2630 v3 @ 2.40GHz
  • 11. Ready, set, go! ● BTW, the plan is: ● Install something very elite ● Get great results ● Install something less elite ● Get not so great results ● Compare and swap ● PROFIT!
  • 12. DragonFly BSD 4.4.1 (the latest) ● It's dead, Jim! ● Was not able to even install it
  • 14. DragonFly BSD 4.0.6 ● Hoorah! ● Well, that's elite enough ● [root@dfbsd /usr]# uname -a DragonFly dfbsd.gitinsky.com 4.0-RELEASE DragonFly v4.0.6-RELEASE #0: Fri Jun 12 19:57:23 EDT 2015 root@www.shiningsilence.com:/usr/obj/home/justin/release/4_0/sys/X86_64_GENERIC x86_64 [root@dfbsd /usr]#
  • 15. Now you have two problems ● Okay, what's next? ● “pgbench -i -s 1000 --foreign-keys pgbench” to load some data ● “pgbench -T 300 -P 10 -c N -j N -r pgbench” to run some tests ● A carefully trained monkey to interpret the results
  • 16. Loading…... ● date; pgbench -i -s 1000 --foreign-keys pgbench; date Fri Feb 5 03:33:28 MSK 2016 creating tables... 100000000 of 100000000 tuples (100%) done (elapsed 257.56 s, remaining 0.00 s) vacuum... set primary keys... set foreign keys... done. Fri Feb 5 03:43:30 MSK 2016
  • 17. Here we go! ● X – num of clients/threads, Y – transactions per second 1 4 8 12 0 200 400 600 800 1000 1200 1400 1600 1800 2000 DragonflyBSD sync async
  • 18. A note on observability tools ● I'm in your gdb killing your backendz! ● [root@dfbsd /home/chistyakov]# gdb -ex "set pagination 0" -ex "thread apply all bt" -batch -p 436012 Couldn't get registers: Device busy. Couldn't get registers: Device busy. Couldn't get registers: Device busy. Thread 1 (process 436012): Couldn't get registers: Device busy. Quitting: ptrace: Device busy. [root@dfbsd /home/chistyakov]#
  • 19. FreeBSD 10.2 ● BSD guys, what is wrong with you?
  • 20. FreeBSD 9.3 ● This is how a deferred success looks like
  • 21. Okay, SmartOS then ● 100000000 of 100000000 tuples (100%) done (elapsed 107.03 s, remaining 0.00 s). vacuum... set primary keys... set foreign keys... done. real 4m27.237s user 0m23.381s sys 0m2.118s bash-4.1$
  • 22. A note on observability tools ● zpool iostat 1 zones 25,3G 419G 0 4,83K 0 417M zones 25,3G 419G 0 4,63K 0 400M zones 25,3G 419G 0 4,58K 0 386M zones 25,4G 419G 0 4,55K 0 366M zones 25,4G 419G 0 4,57K 0 364M zones 25,4G 419G 0 4,51K 0 378M zones 25,4G 419G 0 4,20K 0 358M zones 25,4G 419G 0 4,83K 0 422M zones 25,5G 419G 0 4,32K 0 360M
  • 23. Sync/async, SmartOS* ● * This chart is a lie 1 4 8 12 0 2000 4000 6000 8000 10000 12000 14000 sync async
  • 24. Lies, damned lies and LZO ● Compression MUST be turned on, period ● ZFS record size: 128K by default ● PostgreSQL block: 8K ● Compressing 128K blocks is more efficient ● Random reads: 8K → 128K amplification ● Fight!
  • 25. The joy of ZFS ● * This chart is probably a lie 1 4 8 12 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 nocompression128k compression8k compression128k
  • 26. Guess which one is 128K? ● zones/var refcompressratio 5.20x - zones/var written 3,31G - zones/var logicalused 16,8G - zones/var logicalreferenced 16,8G - ● zones/var refcompressratio 11.64x - zones/var written 1,27G - zones/var logicalused 14,7G - zones/var logicalreferenced 14,7G -
  • 27. Ubuntu 14.04 LTS ● 100000000 of 100000000 tuples (100%) done (elapsed 65.91 s, remaining 0.00 s) vacuum... set primary keys... set foreign keys... done. real 2m54.867s user 0m27.372s sys 0m0.872s postgres@ubuntu:~$
  • 28. Sync/async, Ubuntu/XFS ● This chart is not a lie 1 4 8 12 0 2000 4000 6000 8000 10000 12000 14000 16000 sync async
  • 29. Synchronous commit ● SmartOS/ZFS (compression, 8K block) – Ubuntu/XFS : 1 - 1 1 4 8 12 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 dfbsd smartos ubuntuxfs ubuntubtrfs
  • 30. Asynchronous commit ● And, finally, we have a winner! Ubuntu/XFS 1 4 8 12 0 2000 4000 6000 8000 10000 12000 14000 16000 dfbsd smartos ubuntuxfs ubuntubtrfs
  • 31. Conclusions ● Hammers don't fly at decent speed ● FreeBSD is very elite ● But you still can use ZFS if you are not elite enough for FreeBSD ● Ubuntu and XFS are not even close to be elite but are very fast ● SmartOS? Never heard of it!
  • 32. Q & A ● - Why did you tweak ZFS but did not tweak BTRFS and HAMMER? ● - Because I'm a ZFS zealot, you heretics!
  • 33. That's all folks! ● Thank you! ● alex@gitinsky.com ● http://gitinsky.com ● http://meetup.com/DevOps-40