Skip to main content

Postgres 1C ZFS

Рекомендуемые тесты fio для ZFS + PostgreSQL

(1) Тест случайных операций 4K (OLTP-нагрузка)

bash
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 (большие блоки)

bash

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)

bash

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