Postgres 1C ZFS
Рекомендуемые тесты fio
для ZFS + PostgreSQL
(1) Тест случайных операций 4K (OLTP-нагрузка)
fio --name=randrw --filename=/postrass/testfile --rw=randrw --bs=4k --size=1G --numjobs=4 --iodepth=32 --runtime=60 --time_based --group_reporting --ioengine=libaio --direct=1
-
numjobs=4
– имитация многопоточной нагрузки (как в реальной работе PostgreSQL). -
iodepth=32
– глубина очереди (важно для SSD/NVMe).
(2) Тест последовательной записи 128K (большие блоки)
fio --name=seqwrite --filename=/postrass/testfile --rw=write --bs=128k --size=1G --numjobs=1 --iodepth=1 --runtime=60 --time_based --group_reporting --ioengine=posixaio
-
Проверяет, как ZFS обрабатывает большие блоки (например, при загрузке данных или бэкапах).
(3) Тест случайных операций 128K (соответствует recordsize
)
fio --name=randrw_128k --filename=/postrass/testfile --rw=randrw --bs=128k --size=1G --numjobs=4 --iodepth=32 --runtime=60 --time_based --group_reporting --ioengine=libaio --direct=1
-
Покажет, насколько эффективно ZFS обрабатывает блоки, близкие к
recordsize
.
Установка Postgres
Великолепная сатья по установке 1С на linux от рарус
В статье указана устаревшая ссылка на скрипт установки PGPro, вот новая:
wget https://repo.postgrespro.ru/pg1c-14/keys/pgpro-repo-add.sh
Получить PostgresPro бесплатно можно на сайте 1c.postgres.ru
Рекомендации от posgrespro для 1С
Полезное для linux+postgres
Postgres + PGAF (Failover за Postgres)
Советы от Гилёва по части PostgreSQL
Неплохая статья с примером обслуживания базы
Настройка PostgreSQL для 1С
Основные моменты ZFS
В postgres:
full_page_writes = off
По ссылке дано объяснение по каждому из пунктов. В частности почему размер блока стоит делать побольше, и почему не надо делать logbias=throughput
Параметры ядра для postgres
vm.swappiness=1
kernel.sched_migration_cost_ns = 5000000
kernel.sched_autogroup_enabled = 0
vm.dirty_background_bytes = 67108864
vm.dirty_bytes = 536870912
vm.zone_reclaim_mode = 0