1С + PostgreSQL + SSD: Куда уходит ресурс хост-записей?
Работа PostgreSQL на SSD начиная с 10 версии, резко увеличивает нагрузку на ресурс SSD, даже когда к базе нет коннектов.
- Описание
- Подробнее
Описание
После обновления PostgreSQL c 9 на 10 версию, я заметил странное — ресурс SSD (хост-записи) начал резко уменьшаться. На рабочих SSD это было не заметно и я бы не обратил внимание, но там где находятся тестовые базы, счетчик хост-записей показывал запись от 3 до 9 ГБайт в день. Что было более чем странно. В принципе для SSD это не нагрузка, но…
Анализ показал, что виновник — сборщик статистики PostgreSQL. Настройки (кроме памяти) я использую стандартно-рекомендованные. Статистику PostgreSQL пишет в каталоги pg_stat, pg_stat_tmp. Файлы там обновляются очень часто.
Выход довольно прост — перенести эти каталоги на HDD или Memory Disk. В принципе на сервере памяти хватает и 0,25 ГБайта не жалко.
Диск можно создать любым приложением, я использую — imdisk. Вызывать можно из планировщика или сделать отдельный скрипт для старта PostgreSQL.
imdisk -a -s 250M -m M: -p "/fs:NTFS /V:MemDisk /q /y"
m:
mkdir pg_stat_tmp
В postgresql.conf нужно дописать:
#stats_temp_directory = ‘pg_stat_tmp’
stats_temp_directory = ‘M:\pg_stat_tmp’
Если PostgreSQL стартанет до того, как будет инициализирован Memory Disk, то статистика пойдет в каталоги "по умолчанию".
По моим наблюдениям, каталог со статистикой не растет дальше определенного размера и зависит от количества баз \ таблиц. После переноса файлов статистики, количество хост-записей упало до 1 Гбайта в день — что больше похоже на правду.

