Настройка PostgreSQL для 1С

Наш опыт

Цель по развертыванию Linux-сервера для работы с 1С нами почти достигнута, остается еще рассмотреть пару тем и "программа-минимум" будет выполнена полностью. На этот раз хотели бы поделиться небольшим опытом настройки PostgreSQL.

Дисклеймер: это лишь представление, некая выжимка небольшого опыта применения базовых советов и инструкций из открытого доступа - с целью оптимизировать работу без замены комплектующих. Важно отметить, что каждая система и ее требования уникальны, и любые рекомендации не являются единственно верными или универсальными, а точнее - значения параметров и свойств стоит подбирать в зависимости от условий: железо, размеры и количество баз, а также количество пользователей. 

Мы не ставили перед собой задачу "выжать все соки" из того, что есть. В статье поделимся тем, что  на наш взгляд оказалось полезным: материалами и ссылками, которые использовали, при этом, применять эти рекомендации стоит лишь с учетом особенностей ваших рабочих систем и ресурсов. 

Есть предел

Если вы начинающий системный администратор, который хочет получить на форуме или чате-телеграмм рекомендации от более опытных товарищей, то знайте, что на вопрос: "с чего начать оптимизацию работы PostgreSQL и 1С?" - чаще всего будете получать ответ по типу: "...купи нормальное железо", а показав параметры своего текущего, можете получить мнение "независимого эксперта" со словами: "...выкини это и купи нормальное". Обижаться не стоит, потому как весомая доля истины в таком ответе всё-таки присутствует. Выбор качественного и подходящего для ваших задач аппаратного обеспечения играет решающую роль в вопросе быстродействия работы 1С. Это можно наглядно увидеть по результатам теста Гилёва между двумя очевидно разными по «начинке» серверами (разница между процессорами 4 года):
  • Первый, где не проводилась оптимизация или какая-либо настройка СУБД, но использование хорошего (в сравнении со вторым) оборудования дает лучший результат (intel Xeon E5-2650 v3, ОЗУ 192 гб, intel ssdsc2kb960g8, WinServ2019, MS SQL):
  • Второй, где оборудование послабее, но была произведена базовая настройка PostgreSQL (intel Xeon E5620, ОЗУ 48 гб, intel SSDSC2BB24, Ubuntu 22.04, PostgreSQL):
Да, знатоки могут сказать, что: "...криво настроена, можно было выжать больше...", "...нельзя сравнивать разные ОС и СУБД..." - и прочее, но если провести тест в "стоке", то разрыв в результате будет еще больше. Вот, например, результат замера второй машины до применения рекомендаций по оптимизации:
Данное сравнение было проведено для того, чтобы сделать небольшой, но всё-таки очевидный вывод: оптимизация СУБД может дать прирост, но в оценке быстродействия ключевую роль в первую очередь играет «железо». Отрицать это было бы странно, как минимум. Поэтому, первоначально стоит понимать, что у всего есть предел - сколько мы можем "выжать" и какой результат получить. Тем не менее даже столь незначительный прирост и результат настройки уже могут дать другой пользовательский опыт. Поэтому оптимизировать нужно всегда и в любом случае.

Настройка PostgreSQL

Итак, как же всё-таки удалось улучшить результат теста и немного увеличить показатель?
Для начала обозначим, что нулевым шагом будет установка PostgreSQL, с патчами для работы с 1С. Об этом подробно рассказываем в другой статье.

1) Первым делом в BIOS отключили режим энергосбережения и HyperThreading - это первые строки рекомендации от ИТС. 

Так как 1С не использует многопоточность, необходимо обеспечить как можно большую вычислительную мощность для одного потока. Именно для этого стоит отключить технологию HyperThreading(только на intel), создающую виртуальные ядра процессора, которые могут выполнять параллельные потоки. А  режим энергосбережения может ограничивать максимальную производительность процессора. Отключение этого режима позволяет процессору работать на максимальной тактовой частоте, а для 1С - чем больше, тем лучше. Название и место расположение этих опций различается в зависимости от версии BIOS, так например, в нашем случае технология HyperThreadin называлась "intel (R) HT Technology".

2) Изменили файл postgresql.conf с учётом «железа», используя  инструкцию от ИТС и информацию по теме вопроса, которая есть в интернете. 

Рекомендуем сделать копию файла postgresql.conf, если, вдруг, от "оптимизации" станет лишь хуже. Далее открываем файл текстовым редактором и меняем значения у параметров. Новые значения можно прописывать в конце файла, либо найти нужный параметр, раскомментировать и установить нужное.

  • Чтобы подобрать подходящие значения параметров использовали калькулятор PGTune(для онлайн версии может понадобиться VPN): указали установленную версию PostgreSQL, тип ОС, тип базы данных, доступную ОЗУ и количество CPU(ЦП = количество потоков на ядро ​​* количество ядер на сокет * сокеты), а также количество подключений и тип диска-хранилища. Утилита предоставляет значения для основных параметров, которые повлияют на результат. Но учтите, что "это не панацея для настроек оптимизации PostgreSQL" - о чём пишут сами авторы сервиса. Применив значения, предоставленные калькулятором, получили следующий результат теста: 
  • И далее, «выйдя за рамки» рекомендаций ИТС, удалось добиться улучшения результата теста по сравнению с предыдущими настройками. Небольшую разницу можно списать не только на "железо", но и малоопытность в вопросе настройки. Тем не менее, для этого дополнительно пришлось изучить основные свойства файла "postgresql.conf". Ускорить процесс помогла "методичка", любезно предоставленная от комьюнити телеграмм-чата «PostgreSQL+1C+Linux», где опытные специалисты сразу предоставили основы по настройке с подробным описанием ключевых параметров. Приятным удивлением был тот факт, что в обсуждении активное участие принимает и дает рекомендации непосредственно сам автор теста - Вячеслав Гилёв. Результат получился следующий:

Вывод и полезности

Однозначно, тема оптимизации очень обширная и сложная, качество работы измеряется не только лишь одним однопоточным тестом, есть и другие инструменты. Поменяв значение у нескольких параметров в одном файлике, невозможно добиться того, на что у опытных специалистов ушло большое количество времени обучения и познания. Но начинать изучение с чего то можно и нужно, поэтому решили поделиться с вами небольшим своим экспресс-опытом и дать выжимку из той информации, которая оказалась полезной:

1) Рекомендации от ИТС - полезно ознакомиться, чтобы понимать какие параметры по мнению компании 1С являются важными для оптимизации. И далее на основе этой информации уже можно пробовать подбирать подходящие для себя значения. 

2) Телеграмм-чат сообщества «PostgreSQL+1C+Linux» - большая по количеству активных пользователей группа, где можно получить не только рекомендации по типу "купить новое железо", но и хорошие "методички" по базовой настройке с подробным описанием каждого параметра: за что отвечает и как выбрать подходящее. 

3) Нагрузочный тест TPC-1C - официальное описание от автора теста и ссылки для скачивания. В целом, на форуме сайта поднимается много интересных тем по вопросу производительности 1С.
Попробуйте подсистему «Telegram-бот» бесплатно
Позволит упростить задачу коммуникации с сотрудниками или клиентами. Наша подсистема интегрируется в любое типовое и отраслевое решение
Попробовать бесплатно
Изображение автора статьи

Специалист технической поддержки компании Софтонит

Загрузка...
Поделитесь статьей
Рекомендуем почитать
Статьи Решение проблемы "Обнаружено нарушение целостности системы 1С"

На сегодняшний день любой, пользующийся популярностью у пользователей программный продукт подвергается "пиратским" взломам и соответственно нелегальному использованию. Не исключением будут и программы от всеми известной в России фирмы 1С. Каждый разработчик старается бороться с подобным незаконным использованием своих продуктов по-разному. Так, например, разработчики 1С с 1-ого февраля 2021 года, массово запустили механизм, который определяет легальность использования программы 1С. В случае, если программа была взломана и используется незаконно конечные пользователи получают ошибку "Обнаружено нарушение целостности системы". Сегодня в публикации разберем причины появления данной ошибки, а также расскажем как решить возникшую проблему. 

Статьи Подключение терминала сбора данных к 1С

В этой статье мы подключим терминал сбора данных к 1с поэтапно и поработаем документом "Поступление". Данное решение поможет Вам значительно ускорить процесс пересчета товара, а что еще немаловажно при правильной работе избавить от ошибок. Прочитав данную статью, Вы поймете, что все не так сложно и доступно для каждого. Для реализации выбран ТСД фирмы Urovo и "1С:Розница"

Статьи Настройка Apache для работы 1С через HTTPS (SSL)

Безопасность для многих всегда идет на первом месте, многие интернет-гиганты, типа Google даже добавляют в свои браузеры предупреждения, что соединение не безопасно, если на сайте не используется SSL-сертификат.
1С:Предприятие тоже может работать по протоколу HTTPS.
Мы предлагаем статью-инструкцию, как настроить HTTPS в Apache таким образом, чтобы 1С:Предприятие работало без проблем через SSL.

Статьи Ошибка HTTP 500.0 - Internal Server Error после публикации базы 1С на веб-сервере IIS

Рассмотрим ошибку, которая может возникать при публикации информационной базы 1С на web-сервере IIS Windows.
Попытаемся ее решить. Ошибка HTTP 500.0 - Internal Server Error.

Статьи Как удалить данные по организации в базе 1С?

При ведении учета по нескольким организациям зачастую возникает необходимость очистить основную базу от всех данных какой-либо организации. Или разделить информационную базу на несколько, по организациям. Рассмотрим один из вариантов решения. Однако с помощью стандартной обработки удаления информации, это сделать будет проблемно и ресурсоемко. Поэтому в этой публикации рассмотрим вариант решения подобных проблем.

Статьи Быстро растет база MS SQL

Часто наши клиенты задают нам вопросы связанные с быстрым ростом размеров базы данных MS SQL.
1С:Предприятие использует БД MS SQL, а сервер на котором все это работает может столкнуться с тем, что банально для базы не хватит места.

0 / 0