Найти в Дзене
Postgres DBA

ОПТИМИЗАЦИЯ НАСТРОЕК СУБД и ОС (PG_EXPECTO + DeepSeek):НАСТРОЙКИ СУБД и VM

ОПТИМИЗАЦИЯ НАСТРОЕК СУБД и ОС (PG_EXPECTO + DeepSeek) НАСТРОЙКИ СУБД и VM version ----------------------------------------------------------------------------------------------------------- PostgreSQL 17.5 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 11.4.1 20230605 (Red Soft 11.4.0-1), 64-bit (1 row) max_connections = 239 work_mem = 32MB temp_buffers = 16MB # Vacuum and bgwriter configuration autovacuum_max_workers = 4 vacuum_cost_limit = 400 autovacuum_naptime = 20s autovacuum_analyze_scale_factor = '0.005' bgwriter_delay = 20ms bgwriter_lru_multiplier = '4.0' bgwriter_lru_maxpages = 4000 # Additional configuration track_activity_query_size = 10kB default_statistics_target = 800 wal_compression = lz4 default_toast_compression = lz4 log2_num_lock_partitions = 8 log_lock_waits = on log_connections = on log_disconnections = on max_wal_size = 4GB min_wal_size = 2GB random_page_cost = '1.1' # for NVMe SSD #random_page_cost = 1.3 # for SATA SSD #random_page_cost = 4.0 # for HDD jit = o

ОПТИМИЗАЦИЯ НАСТРОЕК СУБД и ОС (PG_EXPECTO + DeepSeek)

НАСТРОЙКИ СУБД и VM

version

-----------------------------------------------------------------------------------------------------------

PostgreSQL 17.5 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 11.4.1 20230605 (Red Soft 11.4.0-1), 64-bit

(1 row)

max_connections = 239

work_mem = 32MB

temp_buffers = 16MB

# Vacuum and bgwriter configuration

autovacuum_max_workers = 4

vacuum_cost_limit = 400

autovacuum_naptime = 20s

autovacuum_analyze_scale_factor = '0.005'

bgwriter_delay = 20ms

bgwriter_lru_multiplier = '4.0'

bgwriter_lru_maxpages = 4000

# Additional configuration

track_activity_query_size = 10kB

default_statistics_target = 800

wal_compression = lz4

default_toast_compression = lz4

log2_num_lock_partitions = 8

log_lock_waits = on

log_connections = on

log_disconnections = on

max_wal_size = 4GB

min_wal_size = 2GB

random_page_cost = '1.1' # for NVMe SSD

#random_page_cost = 1.3 # for SATA SSD

#random_page_cost = 4.0 # for HDD

jit = off

autoprepare_threshold = 2

autoprepare_for_protocol = simple

plan_cache_lru_memsize = 100MB

generic_plan_fuzz_factor = '0.9'

# Do not edit this file manually!

# It will be overwritten by the ALTER SYSTEM command.

track_io_timing = 'on'

listen_addresses = '0.0.0.0'

logging_collector = 'on'

log_directory = '/log/pg_log'

log_destination = 'stderr'

log_rotation_size = '0'

log_rotation_age = '1d'

log_line_prefix = '%m| %d| %a| %u| %h| %p| %e| '

log_truncate_on_rotation = 'on'

log_checkpoints = 'on'

archive_mode = 'on'

archive_command = 'true'

archive_timeout = '30min'

pg_stat_statements.track_utility = 'off'

shared_preload_libraries = 'pg_stat_statements , pg_wait_sampling'

log_autovacuum_min_duration = '0'

wipe_file_on_delete = 'on'

wipe_heaptuple_on_delete = 'on'

wipe_mem_on_free = 'on'

wipe_memctx_on_free = 'on'

wipe_xlog_on_free = 'on'

log_connections = 'on'

shared_buffers = '3GB'

maintenance_work_mem = '1024MB'

autovacuum_work_mem = '512MB'

effective_io_concurrency = '500'

effective_cache_size = '5120MB'

Architecture: x86_64

CPU op-mode(s): 32-bit, 64-bit

Address sizes: 40 bits physical, 48 bits virtual

Byte Order: Little Endian

CPU(s): 8

On-line CPU(s) list: 0-7

Vendor ID: GenuineIntel

Model name: Intel Xeon Processor (Skylake, IBRS, no TSX)

CPU family: 6

Model: 85

Thread(s) per core: 1

Core(s) per socket: 1

Socket(s): 8

Stepping: 4

BogoMIPS: 5387.32

Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single pti ibrs ibpb fsgsbase bmi1 avx2 smep bmi2 erms invpcid avx512f avx512dq rdseed adx smap clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 arat pku ospke

Hypervisor vendor: KVM

Virtualization type: full

L1d cache: 256 KiB (8 instances)

L1i cache: 256 KiB (8 instances)

L2 cache: 32 MiB (8 instances)

L3 cache: 128 MiB (8 instances)

NUMA node(s): 1

NUMA node0 CPU(s): 0-7

Vulnerability Gather data sampling: Unknown: Dependent on hypervisor status

Vulnerability Itlb multihit: KVM: Mitigation: VMX unsupported

Vulnerability L1tf: Mitigation; PTE Inversion

Vulnerability Mds: Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unknown

Vulnerability Meltdown: Mitigation; PTI

Vulnerability Mmio stale data: Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unknown

Vulnerability Reg file data sampling: Not affected

Vulnerability Retbleed: Mitigation; IBRS

Vulnerability Spec rstack overflow: Not affected

Vulnerability Spec store bypass: Vulnerable

Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization

Vulnerability Spectre v2: Mitigation; IBRS; IBPB conditional; STIBP disabled; RSB filling; PBRSB-eIBRS Not affected; BHI SW loop, KVM SW loop

Vulnerability Srbds: Not affected

Vulnerability Tsx async abort: Not affected

RAM = 7.50 GB

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS

vda 252:0 0 70G 0 disk

├─vda1 252:1 0 1G 0 part /boot

└─vda2 252:2 0 69G 0 part

├─rootvg-root 253:0 0 20G 0 lvm /

├─rootvg-swap 253:1 0 1G 0 lvm [SWAP]

├─rootvg-tmp 253:2 0 5G 0 lvm /tmp

├─rootvg-opt 253:3 0 5G 0 lvm /opt

├─rootvg-home 253:4 0 5G 0 lvm /home

└─rootvg-var 253:5 0 15G 0 lvm /var

vdb 252:16 0 30G 0 disk

└─vg_log-LG_log 253:6 0 29G 0 lvm /log

vdc 252:32 0 50G 0 disk

└─vg_wal-LG_wal 253:7 0 49G 0 lvm /wal

vdd 252:48 0 100G 0 disk

└─vg_data-LG_data 253:8 0 99G 0 lvm /data

devices = vdd vdc

ТЕКУЩИЕ НАСТРОЙКИ УПРАВЛЕНИЯ VM и RAM

1.ПОРОГИ ДЛЯ ЗАПУСКА ФОНОВОЙ ЗАПИСИ НА ДИСК:|

vm.dirty_background_ratio |

процент от общей оперативной памяти,|

по достижении которого система начинает фоновую запись "грязных" данных на диск. | 5|

vm.dirty_background_bytes |

абсолютный объем "грязных" данных в байтах |

для запуска фоновой записи (имеет приоритет над ratio). | 0|

2.ПОРОГИ ДЛЯ ПРИНУДИТЕЛЬНОЙ СИНХРОННОЙ ЗАПИСИ:|

vm.dirty_ratio |

процент памяти, по превышении которого процессы блокируются |

и вынуждены синхронно записывать данные на диск. | 15|

vm.dirty_bytes |

абсолютный лимит "грязных" данных в байтах|

для блокировки процессов (имеет приоритет над ratio). | 0|

3.ТАЙМИНГИ ЗАПИСИ:|

vm.dirty_expire_centisecs |

время (в сотых долях секунды)|

по истечении которого "грязные" данные считаются устаревшими и подлежат записи. | 1000|

vm.dirty_writeback_centisecs |

частота (в сотых долях секунды), |

с которой фоновый процесс проверяет и записывает устаревшие данные. | 200|

4.НАСТРОЙКИ УПРАВЛЕНИЯ ПАМЯТЬЮ:|

vm.vfs_cache_pressure|

тенденция ядра к освобождению памяти, |

занятой кэшем файловой системы (чем выше значение, тем агрессивнее). | 100|

vm.swappiness |

склонность системы к использованию подкачки на диск (swap)|

вместо освобождения кэша страниц в RAM (диапазон от 0 до 100). | 1|

-------------------------------------------------------------------------

МЕТОДОЛОГИЯ СТАТИСТИЧЕСКОГО АНАЛИЗА PG_EXPECTO

МЕТОДИКА 3-Х ЭТАПНОГО СТАТИСТИЧЕСКОГО АНАЛИЗА ОЖИДАНИЙ СУБД

Этап-1.СТАТИСТИЧЕСКАЯ ЗНАЧИМОСТЬ КОЭФФИЦИЕНТА КОРРЕЛЯЦИИ:

p-value < 0.05 — корреляция считается статистически значимой. Анализ целесообразен.

p-value >= 0.05 — связь нестабильна и может быть случайной. Интерпретация силы корреляции неприменима.

Этап-2.ВЗВЕШЕННАЯ КОРРЕЛЯЦИЯ ОЖИДАНИЙ (ВКО)

Аналитическая метрика, предназначенная для ранжирования типов событий ожидания.

по степени их влияния на общую нагрузку системы.

Чем выше значение ВКО, тем критичнее проблема.

>= 0.2 КРИТИЧЕСКОЕ ЗНАЧЕНИЕ : Немедленный анализ и действие.

[0.1 ; 0.2[ ВЫСОКОЕ ЗНАЧЕНИЕ : Глубокий анализ и планирование оптимизации.

[0.04 ; 0.1[ СРЕДНЕЕ ЗНАЧЕНИЕ : Контекстный анализ и наблюдение.

[0.01 ; 0.04[ НИЗКОЕ ЗНАЧЕНИЕ : Наблюдение и документирование.

< 0.01 Игнорировать в текущем анализе.

Этап-3.ИНТЕРПРЕТАЦИЯ КОЭФФИЦИЕНТА ДЕТЕРМИНАЦИИ R2

>= 0.8 — Исключительно сильная модель.

[0.6 ; 0.8[ — Качественная модель.

[0.4 ; 0.6[ — Приемлемая модель (средняя).

[0.2 ; 0.4[ — Слабая модель.

< 0.2 — Непригодная модель.

АНАЛИЗ ОЖИДАНИЙ(wait_event_type)

Этап-1. Интерпретация корреляций.

Отбросить невалидные значения (p-value > 0.05) : связь нестабильна и может быть случайной.

Этап-2. Интерпретация ВКО.

Отбросить значения, если ВКО < 0.01 : Игнорировать в текущем анализе.

Этап-3. Интерпретация коэффициента детерминации R2.

Отбросить значения, если R2 < 0.2 :Непригодная модель

-------------------------------------------------------------------------

МЕТОДИКА 2-Х ЭТАПНОГО СТАТИСТИЧЕСКОГО АНАЛИЗА МЕТРИК

Этап-1.СТАТИСТИЧЕСКАЯ ЗНАЧИМОСТЬ КОЭФФИЦИЕНТА КОРРЕЛЯЦИИ:

p-value < 0.05 — корреляция считается статистически значимой. Анализ целесообразен.

p-value >= 0.05 — связь нестабильна и может быть случайной. Интерпретация силы корреляции неприменима.

Этап-2.ИНТЕРПРЕТАЦИЯ КОЭФФИЦИЕНТА ДЕТЕРМИНАЦИИ R2

>= 0.8 — Исключительно сильная модель.

[0.6 ; 0.8[ — Качественная модель.

[0.4 ; 0.6[ — Приемлемая модель (средняя).

[0.2 ; 0.4[ — Слабая модель.

< 0.2 — Непригодная модель.

АНАЛИЗ КОРРЕЛЯЦИ МЕЖДУ МЕТРИКАМИ

Этап-1. Интерпретация корреляций.

Отбросить невалидные значения (p-value > 0.05) : связь нестабильна и может быть случайной.

Этап-2. Интерпретация коэффициента детерминации R2.

Отбросить значения, если R2 < 0.2 :Непригодная модель

-------------------------------------------------------------------------