Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Tuning Linux for Databases
Search
Alexey Lesovsky
October 15, 2016
Education
74
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Tuning Linux for Databases
Slides from my talk at HDConf 2016 Minsk, Belarus
Alexey Lesovsky
October 15, 2016
More Decks by Alexey Lesovsky
See All by Alexey Lesovsky
PostgreSQL Scaling Usecases
lesovsky
0
130
Patroni failure stories, or How to crash yout PostgreSQL cluster
lesovsky
0
480
PostgreSQL High Availability in 2019
lesovsky
0
480
Top developer's mistakes when working with PostgreSQL
lesovsky
1
180
Let's Pull the Plug On the Autovacuum (EN)
lesovsky
0
1.3k
Troubleshooting PostgreSQL for Developers (RU)
lesovsky
2
370
Troubleshooting PostgreSQL Streaming Replication
lesovsky
0
1.1k
Call of Postgres: Advanced Operations. Part I.
lesovsky
0
81
Call of Postgres: Advanced Operations. Part II.
lesovsky
0
110
Other Decks in Education
See All in Education
Throw Yourself In! - How I've learned English and What I'm Facing
georgeorge
1
210
Course Review - Lecture 13 - Next Generation User Interfaces (4018166FNR)
signer
PRO
0
2.3k
Interaction - Lecture 10 - Information Visualisation (4019538FNR)
signer
PRO
0
2.7k
Visionary Initiative: Future Intelligence 「未来の知性と社会の礎を築く」|Science Tokyo(東京科学大学)
sciencetokyo
PRO
0
1.1k
吉祥寺.pmは1つじゃない — 複数イベント並走運営の12年 —
magnolia
0
1.3k
2026年度春学期 統計学 第9回 確からしさを記述する ー 確率 (2026. 5. 28)
akiraasano
PRO
0
170
生成AI時代のエンジニア育成について考えてみた
akasan
0
190
AIには考えられないことを考えられる人になるために
iqbocchi
1
210
Modern Data Fetching Techniques in Angular
debug_mode
0
240
Examen de Selectividad. Geografía julio 2026 (Convocatoria Extraordinaria). UCLM
juanmartin2026
1
10k
[2026前期火5] 論理学(京都大学文学部 前期 第14回)「計算は、証明ではない——ハルシネーションを三層ハーモニーで診る」
yatabe
0
150
第2部-高校生とAI活用/high-school2026-2
okana2ki
0
110
Featured
See All Featured
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
400
Measuring & Analyzing Core Web Vitals
bluesmoon
9
940
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
430
Faster Mobile Websites
deanohume
310
32k
The untapped power of vector embeddings
frankvandijk
2
1.8k
Balancing Empowerment & Direction
lara
6
1.2k
Side Projects
sachag
455
43k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
280
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
380
Transcript
None
About PostgreSQL DBA. Linux system administrator. PostgreSQL-Consulting.com: • 24/7 support.
• Audit, performance optimizations. • Consulting and Training. • Monitoring and Emergency. • Capacity planning. Slides: https://goo.gl/awmZ2H
Agenda RDBMS on Linux, why? Databases and Resources. OS subsystems.
CPU, Process scheduling, Power saving policies. Memory, VM, NUMA, Huge pages. Storage, File Systems, Input/Output. Other misc.
Why Linux? Linux is a good choice: • Active development
& Community support. • A lot of features & Fast implementation. • Stable & Mature & Durable.
Databases & Resources Concurrency Query speed Sort, group, hash,... OS
page cache DB buffer pool Local process cache DB data files Transaction Log Cold start CPU Memory Storage
Databases & Resources CPU Scheduling NUMA Power Saving Virtual Memory
NUMA Huge Pages File Systems Storage I/O CPU Memory Storage
Resources CPU scheduler. Virtual memory and NUMA. Huge pages. File
systems. Storage IO. Power saving policy. Others.
CPU scheduling CPU scheduler responsible for proper processes planning: Sysctl:
• kernel.sched_migration_cost_ns = 5000000 (default: 500000). • kernel.sched_autogroup_enabled = 0 (default: 1). http://www.postgresql.org/message-id/
[email protected]
http://kernelnewbies.org/Linux_2_6_38#head-59575a6aeafa38490226a560ee02de89829a5b20
CPU scheduling CPU scheduler responsible for proper processes planning: Sysctl:
• kernel.sched_migration_cost_ns = 5000000 (default: 500000). • kernel.sched_autogroup_enabled = 0 (default: 1). http://www.postgresql.org/message-id/
[email protected]
http://kernelnewbies.org/Linux_2_6_38#head-59575a6aeafa38490226a560ee02de89829a5b20 Be aware on Ubuntu: 12.04 #1055222 and 14.04 #1422016. Use noautogroup kernel param instead of sysctl.conf.
Virtual Memory What is it? Allocator, Caching, Dirty pages and
Writeback.
Virtual Memory
Virtual Memory Sysctl: vm.dirty_background_ratio & vm.dirty_ratio = disable it. vm.dirty_background_bytes
& vm.dirty_bytes = depends on ... RAID cache size, 64MB/128MB otherwise
Virtual Memory Out-of-memory & OOM-Killer Sysctl: vm.swappiness = 1 (default:
60)
NUMA S — Socket C — CPU core M —
Memory bank
NUMA BIOS: enable memory node interleaving. Kernel boot: numa=off. numactl
utility. Sysctl: • vm.zone_reclaim_mode = 0 (default: 0). • kernel.numa_balancing = 0 (default: 0).
Huge Pages Huge pages vs. Transparent huge pages. Huge pages
are supported by many RDBMS. Always disable transparent huge pages.
Huge Pages Huge pages vs. Transparent huge pages. Huge pages
are supported by many RDBMS. Always disable transparent huge pages. /etc/rc.local: • echo never > /sys/kernel/mm/transparent_hugepage/enabled • echo never > /sys/kernel/mm/transparent_hugepage/defrag
Filesystems Ext3 vs Ext4 vs XFS: what is better? Filesystem
Barriers.
Filesystems Ext3 vs Ext4 vs XFS: what is better? Filesystem
Barriers. Disable Write Cache: • hdparm -W0 /dev/device • MegaCli64 -LDSetProp -DisDskCache -Lall -aALL
Filesystems Ext3 vs Ext4 vs XFS: what is better? Filesystem
Barriers. Disable Write Cache: • hdparm -W0 /dev/device • MegaCli64 -LDSetProp -DisDskCache -Lall -aALL Hardware RAID + BBU = barrier=0 (disable). Software RAID = barrier=1 (enable).
Filesystems Ext3 vs Ext4 vs XFS: what is better? Filesystem
Barriers. Disable Write Cache: • hdparm -W0 /dev/device • MegaCli64 -LDSetProp -DisDskCache -Lall -aALL Hardware RAID + BBU = barrier=0 (disable). Software RAID = barrier=1 (enable). Enterprise SSD with Power Loss Protection = barrier=0 (disable).
Storage IO SATA/SAS vs SSD. IO elevators.
Storage IO SATA/SAS vs SSD. IO elevators: • noop: SSD,
PCIe SSD, hi-end storages. • deadline: RAID, SATA/SAS. • cfq: good default. • none (multi-queue block IO): SSD, PCIe SSD.
Storage IO SATA/SAS vs SSD. IO elevators: • noop: SSD,
PCIe SSD, hi-end storages. • deadline: RAID, SATA/SAS. • cfq: good default. • none (multi-queue block IO): SSD, PCIe SSD. # echo 'elevator_name' > /sys/block/<device>/queue/scheduler kernel boot: elevator=<name> /sys/block/*/queue/: rotational, rq_affinity, read_ahead_kb
Power Saving Policy Drivers: acpi_cpufreq vs. intel_pstate. scaling_governor.
Power Saving Policy Drivers: acpi_cpufreq vs. intel_pstate. scaling_governor: • /sys/devices/system/cpu/cpuX/cpufreq/scaling_available_governors
• /sys/devices/system/cpu/cpuX/cpufreq/scaling_governor
Power Saving Policy Drivers: acpi_cpufreq vs. intel_pstate. scaling_governor: • /sys/devices/system/cpu/cpuX/cpufreq/scaling_available_governors
• /sys/devices/system/cpu/cpuX/cpufreq/scaling_governor acpi_cpufreq + performance. intel_pstate + powersave.
Misc: Clocksources What is clocksource? acpi_pm vs. hpet vs. tsc.
/sys/devices/system/clocksource/clocksource0/available_clocksource. /sys/devices/system/clocksource/clocksource0/current_clocksource.
Summary Linux is a good choice for RDBMS: Modern, Universal,
Flexible, Stable. Adapt Linux for your workloads. Test → Change → Test → Commit/Rollback.
Questions? Alexey Lesovsky
[email protected]
PostgreSQL-Consulting.com: Data maintenance at its best
https://postgresql-consulting.com