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
Slide 3
Slide 3 text
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.
Slide 4
Slide 4 text
Why Linux?
Linux is a good choice:
● Active development & Community support.
● A lot of features & Fast implementation.
● Stable & Mature & Durable.
Slide 5
Slide 5 text
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
Slide 6
Slide 6 text
Databases & Resources
CPU Scheduling
NUMA
Power Saving
Virtual Memory
NUMA
Huge Pages
File Systems
Storage I/O
CPU Memory
Storage
Slide 7
Slide 7 text
Resources
CPU scheduler.
Virtual memory and NUMA.
Huge pages.
File systems.
Storage IO.
Power saving policy.
Others.
Slide 8
Slide 8 text
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
Slide 9
Slide 9 text
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.
Slide 10
Slide 10 text
Virtual Memory
What is it?
Allocator, Caching, Dirty pages and Writeback.
Power Saving Policy
Drivers: acpi_cpufreq vs. intel_pstate.
scaling_governor.
Slide 26
Slide 26 text
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
Slide 27
Slide 27 text
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.
Slide 28
Slide 28 text
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.
Slide 29
Slide 29 text
Summary
Linux is a good choice for RDBMS:
Modern, Universal, Flexible, Stable.
Adapt Linux for your workloads.
Test → Change → Test → Commit/Rollback.
Slide 30
Slide 30 text
Questions?
Alexey Lesovsky
[email protected]
PostgreSQL-Consulting.com: Data maintenance at its best
https://postgresql-consulting.com