postgresql linux kernel - friendship · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1...
TRANSCRIPT
![Page 1: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/1.jpg)
POSTGRESQL
LINUX KERNEL
FRIENDSHIP
DMITRY DOLGOV
22-10-2018
![Page 2: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/2.jpg)
1
![Page 3: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/3.jpg)
2
![Page 4: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/4.jpg)
3
![Page 5: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/5.jpg)
Plan
Overview
Resources
: Execution scheduling
: Memory management
: Storage IO
Abstracted layers
: Virtualization
: Containerization
4
![Page 6: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/6.jpg)
Plan
Overview
Resources
: Execution scheduling
: Memory management
: Storage IO
Abstracted layers
: Virtualization
: Containerization
4
![Page 7: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/7.jpg)
Plan
Overview
Resources
: Execution scheduling
: Memory management
: Storage IO
Abstracted layers
: Virtualization
: Containerization
4
![Page 8: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/8.jpg)
Plan
Overview
Resources
: Execution scheduling
: Memory management
: Storage IO
Abstracted layers
: Virtualization
: Containerization4
![Page 9: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/9.jpg)
Overview
Bidirectional resource management
IPC mechanisms
New hardware support
…
5
![Page 10: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/10.jpg)
Execution scheduling
![Page 11: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/11.jpg)
# Experiment 1transaction type: pg_long.sqllatency average = 1312.903 ms
# Experiment 2SQL script 1: pg_long.sql- weight: 1 (targets 50.0% of total)- latency average = 1426.928 ms
SQL script 2: pg_short.sql- weight: 1 (targets 50.0% of total)- latency average = 303.092 ms
6
![Page 12: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/12.jpg)
Scheduling
T1c
T2c
7
![Page 13: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/13.jpg)
Scheduling
T1c
T3
T2
c
7
![Page 14: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/14.jpg)
Scheduling
T2c
T3c
7
![Page 15: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/15.jpg)
Scheduling
T2c
T3c
7
![Page 16: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/16.jpg)
# Experiment 112,396,382,649 cache-misses # 28.562%2,750 cpu-migrations
# Experiment 220,665,817,234 cache-misses # 28.533%10,460 cpu-migrations
8
![Page 17: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/17.jpg)
9
![Page 18: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/18.jpg)
Tunables
: /proc/sys/kernel/sched_migration_cost_ns
: 500000
: /proc/sys/kernel/sched_wakeup_granularity_ns
: 2000000
: /proc/sys/kernel/sched_min_granularity_ns
: 1500000
: /proc/sys/kernel/sched_latency_ns
: 12000000
10
![Page 19: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/19.jpg)
Tunables
: /proc/sys/kernel/sched_migration_cost_ns
: 500000
: /proc/sys/kernel/sched_wakeup_granularity_ns
: 2000000
: /proc/sys/kernel/sched_min_granularity_ns
: 1500000
: /proc/sys/kernel/sched_latency_ns
: 12000000
10
![Page 20: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/20.jpg)
Tunables
: /proc/sys/kernel/sched_migration_cost_ns
: 500000
: /proc/sys/kernel/sched_wakeup_granularity_ns
: 2000000
: /proc/sys/kernel/sched_min_granularity_ns
: 1500000
: /proc/sys/kernel/sched_latency_ns
: 12000000
10
![Page 21: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/21.jpg)
Tunables
: /proc/sys/kernel/sched_migration_cost_ns
: 500000
: /proc/sys/kernel/sched_wakeup_granularity_ns
: 2000000
: /proc/sys/kernel/sched_min_granularity_ns
: 1500000
: /proc/sys/kernel/sched_latency_ns
: 12000000
10
![Page 22: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/22.jpg)
Tunables
: /proc/sys/kernel/sched_migration_cost_ns
: 500000
: /proc/sys/kernel/sched_wakeup_granularity_ns
: 2000000
: /proc/sys/kernel/sched_min_granularity_ns
: 1500000
: /proc/sys/kernel/sched_latency_ns
: 12000000
10
![Page 23: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/23.jpg)
Tunables
: /proc/sys/kernel/sched_migration_cost_ns
: 500000
: /proc/sys/kernel/sched_wakeup_granularity_ns
: 2000000
: /proc/sys/kernel/sched_min_granularity_ns
: 1500000
: /proc/sys/kernel/sched_latency_ns
: 12000000
10
![Page 24: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/24.jpg)
Tunables
: /proc/sys/kernel/sched_migration_cost_ns
: 500000
: /proc/sys/kernel/sched_wakeup_granularity_ns
: 2000000
: /proc/sys/kernel/sched_min_granularity_ns
: 1500000
: /proc/sys/kernel/sched_latency_ns
: 12000000
10
![Page 25: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/25.jpg)
Tunables
: /proc/sys/kernel/sched_migration_cost_ns
: 500000
: /proc/sys/kernel/sched_wakeup_granularity_ns
: 2000000
: /proc/sys/kernel/sched_min_granularity_ns
: 1500000
: /proc/sys/kernel/sched_latency_ns
: 12000000
10
![Page 26: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/26.jpg)
Tunables
: /proc/sys/kernel/sched_migration_cost_ns
: 500000
: /proc/sys/kernel/sched_wakeup_granularity_ns
: 2000000
: /proc/sys/kernel/sched_min_granularity_ns
: 1500000
: /proc/sys/kernel/sched_latency_ns
: 1200000010
![Page 27: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/27.jpg)
pgbench and pg_dump
real 1m38.990suser 1m9.127ssys 0m2.066s
usecs : count distribution0 -> 1 : 16 | |2 -> 3 : 4604 |** |4 -> 7 : 6812 |**** |8 -> 15 : 14888 |********* |16 -> 31 : 19267 |*********** |32 -> 63 : 65795 |****************************************|64 -> 127 : 50454 |****************************** |128 -> 255 : 16393 |********* |256 -> 511 : 5981 |*** |512 -> 1023 : 12300 |******* |1024 -> 2047 : 48 | |2048 -> 4095 : 0 | |
11
![Page 28: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/28.jpg)
pgbench and pg_dump
real 1m32.030suser 1m8.559ssys 0m1.641s
usecs : count distribution0 -> 1 : 1 | |2 -> 3 : 8 | |4 -> 7 : 25 | |8 -> 15 : 46 |* |16 -> 31 : 189 |******* |32 -> 63 : 119 |**** |64 -> 127 : 96 |*** |128 -> 255 : 93 |*** |256 -> 511 : 238 |********* |512 -> 1023 : 323 |************ |1024 -> 2047 : 1012 |****************************************|2048 -> 4095 : 47 |* |
12
![Page 29: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/29.jpg)
Wakeup granularity, microsec
13
![Page 30: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/30.jpg)
CPU hotplug and HyperThreading
: Share execution state and cache
: Spin locks have significant impact
: PAUSE instruction (skylake latency 140 cycles)
: More deviation for latency
Intel® 64 and IA-32 Architectures Optimization Reference Manual
14
![Page 31: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/31.jpg)
CPU hotplug and HyperThreading
: Share execution state and cache
: Spin locks have significant impact
: PAUSE instruction (skylake latency 140 cycles)
: More deviation for latency
Intel® 64 and IA-32 Architectures Optimization Reference Manual
14
![Page 32: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/32.jpg)
CPU hotplug and HyperThreading
: Share execution state and cache
: Spin locks have significant impact
: PAUSE instruction (skylake latency 140 cycles)
: More deviation for latency
Intel® 64 and IA-32 Architectures Optimization Reference Manual
14
![Page 33: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/33.jpg)
CPU hotplug and HyperThreading
: Share execution state and cache
: Spin locks have significant impact
: PAUSE instruction (skylake latency 140 cycles)
: More deviation for latency
Intel® 64 and IA-32 Architectures Optimization Reference Manual
14
![Page 34: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/34.jpg)
CPU hotplug and HyperThreading
: Share execution state and cache
: Spin locks have significant impact
: PAUSE instruction (skylake latency 140 cycles)
: More deviation for latency
Intel® 64 and IA-32 Architectures Optimization Reference Manual
14
![Page 35: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/35.jpg)
Latency rolling standard deviation, r/w
15
![Page 36: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/36.jpg)
Latency rolling standard deviation, readonly
16
![Page 37: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/37.jpg)
Memory management
![Page 38: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/38.jpg)
Dirty pages
OS Cache
Storage
bgw
linux
chkp
17
![Page 39: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/39.jpg)
Dirty pages
OS Cache
Storage
bgw
linux
chkp
17
![Page 40: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/40.jpg)
Dirty pages
OS Cache
Storage
bgw
linux
chkp
17
![Page 41: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/41.jpg)
Dirty pages
OS Cache
Storage
bgw
linux
chkp
17
![Page 42: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/42.jpg)
Dirty pages, r/w
: vm.dirty_ratio 20
: vm.dirty_background_ratio 10
: vm.dirty_bytes 0
: vm.dirty_backround_bytes 0
18
![Page 43: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/43.jpg)
Dirty pages
19
![Page 44: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/44.jpg)
Storage IO
![Page 45: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/45.jpg)
WAL
storage
client
20
![Page 46: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/46.jpg)
WAL
storage
client
W
20
![Page 47: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/47.jpg)
WAL
storage
client
W
client
W
20
![Page 48: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/48.jpg)
WAL
storage
client
W
client
W
20
![Page 49: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/49.jpg)
WAL
storage
client
W
client writer
W
20
![Page 50: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/50.jpg)
WAL
: Bufferer IO
: fdatasync
: Writeback error propagation
21
![Page 51: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/51.jpg)
NVMe
: better for resourse sharing (PCI express)
under the virtualization
: /sys/block/sda/queue/scheduler [noop|none]
: DSM operations
22
![Page 52: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/52.jpg)
NVMe DSM
: Expected lifetime
: Prepare for some workload (read/write)
: Access frequency
23
![Page 53: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/53.jpg)
DSM support
: Command DWORD 11 in ioctl
: fcntl SET_FILE_RW_HINT
: nvme-cli (ioctl)
: Specify a start block and a range length
NVM Express Revision 1.3c May 24, 2018
24
![Page 54: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/54.jpg)
# get a start blockhdparm --fibmap data_filedata_file:filesystem blocksize 4096, begins at LBA 0;assuming 512 byte sectors.byte_offset begin_LBA end_LBA sectors
0 55041560 55041567 8
# set dsm for sequential read optimizednvme dsm /dev/nvme1n01 --slbs=55041560 --blocks=1 --idr
25
![Page 55: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/55.jpg)
Virtualization
![Page 56: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/56.jpg)
Timekeeping
: Statistical sampling
(occasional incorrect charging)
: Exact measurement (TSC time drift)
: /sys/devices/system/clocksource/clocksource0/
Timekeeping in VMware Virtual: Information Guide
26
![Page 57: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/57.jpg)
Timekeeping
: Statistical sampling
(occasional incorrect charging)
: Exact measurement (TSC time drift)
: /sys/devices/system/clocksource/clocksource0/
Timekeeping in VMware Virtual: Information Guide
26
![Page 58: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/58.jpg)
Timekeeping
: Statistical sampling
(occasional incorrect charging)
: Exact measurement (TSC time drift)
: /sys/devices/system/clocksource/clocksource0/
Timekeeping in VMware Virtual: Information Guide
26
![Page 59: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/59.jpg)
Timekeeping
: Statistical sampling
(occasional incorrect charging)
: Exact measurement (TSC time drift)
: /sys/devices/system/clocksource/clocksource0/
Timekeeping in VMware Virtual: Information Guide
26
![Page 60: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/60.jpg)
Scheduling
Hypervisor
VM1 VM2
27
![Page 61: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/61.jpg)
Scheduling
Hypervisor
VM1 VM2
27
![Page 62: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/62.jpg)
Scheduling
Hypervisor
VM1 VM2
27
![Page 63: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/63.jpg)
vDSO
: gettimeofday
: clock_gettime
: XEN doesn’t support vDSO for them
: unnecessary context switches to a kernel
Two frequently used system calls are 77% slower on AWS EC2
28
![Page 64: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/64.jpg)
Latency m4.xlarge XEN/TSC, r/w
29
![Page 65: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/65.jpg)
Latency m5.xlarge KVM/TSC, r/w
30
![Page 66: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/66.jpg)
Locks
: Lock holder preemption problem
: Lock waiter preemption problem
: Intel PLE (pause loop exiting)
: PLE_Gap, PLE_Window
Intel® 64 and IA-32 Architectures Software Developer’s Manual, Vol. 3
31
![Page 67: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/67.jpg)
Locks
: Lock holder preemption problem
: Lock waiter preemption problem
: Intel PLE (pause loop exiting)
: PLE_Gap, PLE_Window
Intel® 64 and IA-32 Architectures Software Developer’s Manual, Vol. 3
31
![Page 68: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/68.jpg)
Locks
: Lock holder preemption problem
: Lock waiter preemption problem
: Intel PLE (pause loop exiting)
: PLE_Gap, PLE_Window
Intel® 64 and IA-32 Architectures Software Developer’s Manual, Vol. 3
31
![Page 69: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/69.jpg)
Locks
: Lock holder preemption problem
: Lock waiter preemption problem
: Intel PLE (pause loop exiting)
: PLE_Gap, PLE_Window
Intel® 64 and IA-32 Architectures Software Developer’s Manual, Vol. 3
31
![Page 70: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/70.jpg)
Locks
: Lock holder preemption problem
: Lock waiter preemption problem
: Intel PLE (pause loop exiting)
: PLE_Gap, PLE_Window
Intel® 64 and IA-32 Architectures Software Developer’s Manual, Vol. 3
31
![Page 71: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/71.jpg)
vCPU
Hypervisor
vC1 vC2 vC3 vC4
32
![Page 72: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/72.jpg)
vCPU
Hypervisor
vC1 vC2
vC3 vC4
32
![Page 73: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/73.jpg)
vCPU
Hypervisor
vC1 vC2
vC3 vC4
32
![Page 74: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/74.jpg)
Containerization
![Page 75: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/75.jpg)
cgroups controllers
: cpu,cpuacct
: cpuset
: memory
: devices
: freezer
: net_cls
: rdma
: blkio
: perf_event
: net_prio
: hugetlb
: pids
: rdma
33
![Page 76: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/76.jpg)
8388 8388 postgres blk_throtl_bioblk_throtl_bio+0x1 [kernel]dm_make_request+0x80 [kernel]generic_make_request+0xf6 [kernel]submit_bio+0x7d [kernel]blkdev_issue_flush+0x68 [kernel]ext4_sync_file+0x310 [kernel]vfs_fsync_range+0x4b [kernel]do_fsync+0x3d [kernel]sys_fdatasync+0x13 [kernel]fdatasync+0x10 [libc-2.24.so]XLogBackgroundFlush+0x17e [postgres]WalWriterMain+0x1cb [postgres]PostmasterMain+0xfea [postgres]
34
![Page 77: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/77.jpg)
bklio controller
: CFQ & throttling policy (generic block layer)
: No weight related options will work without CFQ
: Advisable io scheduler for SSD is noop/none
: Block layer do sampling to enforce throttling
35
![Page 78: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/78.jpg)
throttle_sample_time
This is the time window that blk-throttle samples
data, in millisecond. blk-throttle makes decision
based on the samplings. Lower time means cgroups
have more smooth throughput, but higher CPU
overhead. This exists only when
CONFIG_BLK_DEV_THROTTLING_LOW is
enabled.
36
![Page 79: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/79.jpg)
blkio
On traditional cgroup hierarchies, relationships
between different controllers cannot be established
making it impossible for writeback to operate
accounting for cgroup resource restrictions and all
writeback IOs are attributed to the root cgroup.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
37
![Page 80: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/80.jpg)
Bad neighbour
: memory fragmentation
: buddy allocator can fail
to find a page of proper size
: kernel will start a compaction process
38
![Page 81: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/81.jpg)
# Host, normalZone: NormalFree KiB in zone: 807232.00
Fragment size Free fragments4096 296128192 2330816384 13495
# Host with a containerZone: NormalFree KiB in zone: 109700.00
Fragment size Free fragments4096 34058192 708216384 1954
39
![Page 82: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/82.jpg)
Bad neighbour
: PGSemaphore* funcions make use of futex
: Per-cpu hash table for futex with hash buckets
40
![Page 83: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/83.jpg)
Bad neighbour
: WAL segment/heap file creation
: inode lock contention
Understanding Manycore Scalability of File Systems
41
![Page 84: POSTGRESQL LINUX KERNEL - FRIENDSHIP · 8388 8388 postgres blk_throtl_bio blk_throtl_bio+0x1 [kernel] dm_make_request+0x80 [kernel] ... CONFIG_BLK_DEV_THROTTLING_LOWis enabled. 36](https://reader035.vdocuments.mx/reader035/viewer/2022071014/5fcc44ff3892a27e3a4a705c/html5/thumbnails/84.jpg)
Questions?
github.com/erthalion
github.com/erthalion/ansible-ycsb
@erthalion
dmitrii.dolgov at zalando dot de
9erthalion6 at gmail dot com
42