• О компании
  • Опыт
  • Тиражные решения
  • Блог
  • Контакты
  • Решаем задачи автоматизации
  • На базе программ 1С
  • И собственных решений
  • А потом обслуживаем
  • По разумным ценам
  • О компании
  • Опыт
  • Тиражные решения
  • Блог
  • Контакты
Вход для клиентов
Полная версия сайта
Настоящие эксперты
в автоматизации финансов
Официальные статусы партнера
  • welcome@wiseadvice-it.ru
  • Рязанский проспект, 75к4
8 (499) 705-75-53
Заказать обратный звонок
  • Решаем задачи автоматизации
    • Решаемые функциональные задачи по автоматизации
    • Бухгалтерского учета
    • Финансового управления FRP
    • Автоматизация холдинга
    • Управления зарплатой, персоналом и кадровый учет HRM
    • Комплексного управления ресурсами предприятия ERP
    • Управления взаимоотношениями с клиентами CRM
    • Документооборота и бизнес-процессов DOCFLOW BPM
    • Консолидация данных
    • Управление НСИ (MDM)
    • Работы юридических отделов
    • Электронный документооборот с контрагентами ЭДО
    • Интеграция и обмены данными 1С
    • Переходы на новые версии 1С
    • Оптимизация высоконагруженных систем 1С
    • Решаемые задачи автоматизации по отраслям
    • Торговые компании
    • Компании сферы услуг
    • Производственные предприятия
  • На базе программ 1С
    • 1С:Бухгалтерия
    • 1С:Зарплата и Управление Персоналом
    • 1С:Управление торговлей
    • 1С:Управление производственным предприятием
    • 1С:Управление предприятием ERP
    • 1С:Документооборот
    • 1С:Управление холдингом
    • 1С:Консолидация
    • 1С:Комплексная автоматизация
    • 1С:Управление нашей фирмой
    • 1С:CRM
    • 1С:Розница
    • 1С:Корпорация
    Сравнение версий и выбор 1С
  • И собственных решений
    • Финансист
    • Юрайт
    • Защита конфигураций
  • А потом обслуживаем
    • Внедрение 1С
    • ИТС 1С
    • Обновление 1С
    • Переход на новые версии 1С
    • Настройка / доработка 1С
    • Релизы 1С
    • Обслуживание 1С
    • Консультации
    • Установка 1С
    • Переносы и обмены данными
    • 1С Фреш
  • По разумным ценам
  • Главная
  • О компании
  • Блог
  • Полезные статьи

PostgreSQL для 1С

Поделитесь:
Актуальность статьи проверена: 04.04.2017
  • К списку статей
  • Предыдущая статья

Вопросу, какая же СУБД - Postgresql или MS SQL для 1С является наиболее оптимальной, посвящено множество статей. В этой статье мы рассмотрим шаги оптимизации обоих. Каждая СУБД вендора имеет как собственные рекомендации по настройке, так и рекомендации фирмы 1С. Следует отметить, что в зависимости от оборудования, конфигурации серверов и количества пользователей, задающих разную нагрузку, детали процесса оптимизации СУБД под 1С и реализации рекомендаций могут меняться.

Содержание статьи:

Часть 1. 1С на PostgreSQL

  • Настройка PostgreSQL под 1С
  • Установка PostgreSQL
    • Установка дистрибутивов 1С
    • Установка дистрибутивов PostgreSQL-Pro

Часть 2. 1С на MS SQL Server

  • Оптимизация 1С под MS SQL Server

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

Опыт эксплуатации баз 1С на PostgreSQL показал, что наибольшей производительности и оптимальной работы 1С и PostgreSQL удалось добиться на linux, поэтому желательно использовать именно ее. Но вне зависимости от операционной системы, важно помнить, что настройки, указанные по умолчанию при установке PostgreSQL, предназначены только для запуска сервера СУБД. Ни о какой промышленной эксплуатации речи идти не может! Следующим шагом после запуска станет оптимизация PostgreSQL под 1С:

  • Для начала отключаем Energy Saving (в противном случае могут непредсказуемо вырасти задержки ответов из БД) и запрещаем своппинг разделяемой памяти.
  • Настраиваем основные параметры сервера СУБД (рекомендации по настройке описаны достаточно подробно, как на официальном сайте вендора, так и компанией 1С, поэтому остановимся только на самых важных).
  • В типовых рекомендациях компании 1С предлагается отключать механизмы HyperThreading. Но тестирование Postgres-pro на серверах, с включенной SMT (simultaneous multi threading), показало другие результаты.
Установка параметра shared_buffers в RAM/4 является рекомендацией по умолчанию, но пример Sql Server говорит о том, что чем больше памяти ему выделяется, тем лучше его производительность (при отключенном сбросе страниц в файл подкачки). То есть, чем больше страниц данных располагаются в оперативной памяти, тем меньше обращений к диску. Возникает вопрос: почему такой маленький кэш? Ответ прост: если shared_buffers большой, то часть неиспользуемых страниц свопируется на диск. Но как отследить момент, когда сброс прекратится, и показатель параметра будет оптимальным? Для достижения и выхода на оптимальный показатель shared_buffers, его значение необходимо поднимать на продуктиве ежедневно (по возможности) с определенным шагом прироста и смотреть, в какой момент начнется сброс страниц на диск (увеличится своп).
  • Помимо этого, на «большой параметр» негативно влияет работа с множеством мелких страниц, которые по умолчанию имеют размер 8Кб. Работа с ними увеличивает накладные расходы. Что можно с этим сделать для оптимизации под 1С? В версии postgreSQL 9.4 появился параметр huge_pages, который можно включить, но только в Linux. По умолчанию включаются огромные страницы с размером по умолчанию 2048 kB. Дополнительно поддержку данных страниц необходимо включить в ОС. Таким образом, оптимизировав структуру хранения, можно выйти на больший показатель shared_buffers.
  • work_mem = RAM/32..64 или 32MB..128MB Задает объем памяти для каждой сессии, который будет использоваться для внутренних операций сортировки, объединения и пр., прежде чем будут задействованы временные файлы. При превышении этого объема, сервер будет использовать временные файлы на диске, что может существенно снизить скорость обработки запросов. Данный параметр используется при выполнении операторов: ORDER BY, DISTINCT, соединения слиянием и пр.
  • Посчитать дополнительно данный параметр можно следующим образом: (Общая память shared_buffers – память на другие программы) / число активных соединений. Это значение можно уменьшать, следя за количеством создаваемых временных файлов. Такую статистику по размеру и количеству временных файлов можно получить из системного представления pg_stat_database.
  • effective_cache_size = RAM - shared_buffers основная задача этого параметра подсказать оптимизатору запроса, какой способ получения данных выбрать: полный просмотр или сканирование по индексу. Чем выше значение параметра, тем больше вероятность использования сканирования по индексу. При этом сервер не учитывает, что данные при выполнении запроса могут оставаться в памяти, и следующему запросу не надо их поднимать с диска.
  • Установка PostgreSQL

    Установка 1С на PostgreSQL под Windows – достаточно простой процесс. При запуске установочного пакета необходимо указать кодировку UTF-8. По сути, это единственный интересный нюанс и еще какая-то настройка PostgreSQL для 1С 8.3 из-под Windows не потребуется. Установка и настройка PostgreSQL для 1С на ОС linux может вызвать ряд затруднений. Для их преодоления в качестве примера рассмотрим запуск работы (используя дистрибутивы ведущего российского вендора PostgreSQL-Pro и компании 1С) PostgreSQL на сервере Ubuntu 16.04 х64

    Установка дистрибутивов 1С для СУБД PostgreSQL

    1.Скачиваем указанную позицию дистрибутива СУБД PostgreSQL:

    Оптимизация СУБД под 1С

    2.Выкладываем PostgreSQL на сервер;

    3.Распаковать установщик СУБД PostgreSQL можно командой:

    tar -xvf postgresql-9.4.2-1.1C_amd64_deb.tar.bz2

    4.Перед установкой дистрибутива СУБД PostgreSQL проверим наличие в системе необходимой локали (по умолчанию ru_RU.UTF-8):

    Оптимизация СУБД под 1С

    5.Если система, с которой будет работать PostgreSQL, ставилась с языком отличным от русского, необходимо создать новые локали:

    locale-gen ru_RU

    update-locale LANG=ru_RU.UTF8

    dpkg-reconfigure locales

    6.Если необходимая локаль все же имеется, устанавливаем ее по умолчанию:

    locale –a

    nano /etc/default/locale

    Заменяем содержимое на LANG=ru_RU.UTF-8

    7.После перезагрузки, установим необходимые пакеты для нашей версии PostgreSQL:

    apt-get install libxslt1.1 ssl-cert

    8.Версия PostgreSQL пакета 9.4.2-1.1C связана с пакетом libicu версии libicu48. В репозитории нужной версии уже нет, ее можно скачать;

    9.Скачиваем и помещаем в каталог, где хранятся скачанные файлы для PostgreSQL;

    10.Перейдя в каталог с файлами PostgreSQL, производим установку, последовательно набирая следующие команды:

    cd <Путь к папке с файлами>

    dpkg -i libicu48_4.8.1.1-3ubuntu0.6_amd64.deb

    dpkg -i libpq5_9.4.2-1.1C_amd64.deb

    dpkg -i postgresql-client-common_154.1.1C_all.deb

    dpkg -i postgresql-common_154.1.1C_all.deb

    dpkg -i postgresql-client-9.4_9.4.2-1.1C_amd64.deb

    dpkg -i postgresql-9.4_9.4.2-1.1C_amd64.deb

    dpkg -i postgresql-contrib-9.4_9.4.2-1.1C_amd64.deb

    11.Готово. Дистрибутив СУБД PostgreSQL установлен.

    Установка дистрибутивов PostgreSQL-Pro

    Для установки сервера необходимо выполнить подряд следующие команды:

    sudo sh -c 'echo "deb http:// 1c.postgrespro.ru/deb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/postgrespro-1c.list'

    wget --quiet -O - http:// 1c.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO-1C-92 | sudo apt-key add - && sudo apt-get update

    sudo apt-get install postgresql-pro-1c-9.4

    Для доступа к серверу редактируем параметры в файле pg_hba.conf

    сd <Путь до каталога pg_hba.conf>

    cp pg_hba.conf pg_hba.conf.old

    bash -c "echo 'local all postgres trust' > pg_hba.conf"

    bash -c "echo 'host all all all md5' >> pg_hba.conf"

    Сам файл имеет следующую структуру:

    Оптимизация СУБД под 1С

    Файл хорошо документирован, но на английском языке. Кратко рассмотрим основные параметры:

    TYPE

    • Local локальное подключение только через unix
    • Host подключение по TCP/IP
    • Hostssl шифрованное SSL-подключение по TCP/IP (сервер должен быть собран с поддержкой SSL, также требуется установить параметр ssl)
    • Hostnossl нешифрованное подключение по TCP/IP

    METHOD

    • trust допустить без аутентификации
    • reject отказать без аутентификации
    • password запрос пароля открытым текстом
    • md5 запрос пароля в виде MD5
    • ldap проверка имени и пароля с помощью сервера LDAP
    • radius проверка имени и пароля с помощью сервера RADIUS
    • pam проверка имени и пароля с помощью службы подключаемых модулей

    Более подробную и развернутую информацию можно посмотреть в документации к продукту PostgreSQL.

    Далее необходимо запустить сервер:

    root@NODE2:/home/asd# service --status-all |grep postgres

    [ - ] postgresql

    root@NODE2:/home/asd# service postgresql start

    root@NODE2:/home/asd# service --status-all |grep postgres

    [ + ] postgresql

    После окончания основной установки, необходимо настроить конфигурационный файл сервера postgresql.conf, согласно специфики работы PostgreSQL, сервера 1С и конфигурации сервера Ubuntu.

    Оптимизация 1С под MS SQL Server

    Устанавливаем последние обновления для SQL Sever.

    Операционная система резервирует место и забивает его нулями, что занимает достаточно много времени при следующих событиях:

    • Создание базы данных;
    • Добавление файлов данных, журнал транзакций, к существующей базе данных;
    • Увеличение размера существующего файла (в том числе Autogrow-операций);
    • Восстанавливаем базы данных или группы файлов.

    Решается данная проблема добавлением роли (под которой запущен сервер) к пункту локальной политики безопасности «Выполнение задач по обслуживанию томов».

    При возможности необходимо разнести базу TempDB (особенно интенсивно она используется в режиме управляемых блокировок RCSI) и журнал транзакций на разные диски.

    На сервере, где работает SQL сервер, режим энергосбережения должен быть установлен в «Высокая производительность».

    По рекомендации Microsoft, разнести кластерные и некластерные индексы на разные диски, предварительно разместив некластерные индексы в отдельной файловой группе.

    В папке с файлами БД не должно быть сжатия.

    На вкладке «Память» для сервера устанавливаем минимальную планку в размере 50% от общего объема памяти. Максимальную рассчитываем по одной из формул:

    • Максимальная память = Общий объем – размер по ОС – размер под 1С (Если он есть, предварительно замерив счетчиками используемую память) или
    • Максимальная память = Общий объем – (1024* Общий объем/16384).

    Ограничиваем параметр DOP «Max degree of parallelism» и ставим его в значение «1».

    Актуализируем статистику по расписанию. Начиная с SQL Server 2008, обновление статистики вызывает перекомпиляцию запросов и, соответственно, очищает процедурный кэш, поэтому отдельную процедуру по очистке процедурного кэша выполнять не надо.

    Периодически проводим реиндексацию таблицы и дефрагментацию индексов.

    Устанавливаем правильную политику резервирования. Если вам не надо восстанавливаться на последний момент времени к краху системы, а последние минут 5 или больше для вашего бизнеса не критичны, то установите модель восстановления в «Простая». Этим вы ускорите в разы скорость при записи. Главное, чтобы дифференцированный бекап успевал выполняться за указанное время.

    Добиваемся улучшения при работе с TempDB при вводе/выводе посредством создания дополнительных файлов данных. Если логических процессоров меньше 8, рекомендуется создать файл данных для каждого логического процессора. Если логических процессоров больше 8, рекомендуется создать 8 файлов данных и, увеличивая на один при кратности 4, обязательно оценить нагрузку на TempDB.

    Автор: Ярастов Сергей,

    Руководитель направления «Оптимизация высоконагруженных систем» департамента автоматизации «WiseAdvice»


    • Переход 1С на PostgreSQL
      Переход 1С на PostgreSQL
      • Снижение издержек лицензирования и затрат на содержание сервера ОС;
      • Использование преимуществ кроссплатформенного ПО
      от 30 000 руб
      Узнать больше
    • Повышение производительности 1С
      Повышение производительности 1С
      • Блокировки: поиск и устранение;
      • Управляемые блокировки;
      • Тонкая настройка СУБД под 1С;
      • Перевод на PostgreSQL;
      • Выбор сервера и комплектующих для 1С
      от 15 000 руб
      Узнать больше
    • Перевод 1С на управляемые блокировки
      Перевод 1С на управляемые блокировки
      • Снятие проблем автоматического режима управления блокировками Sql Server;
      • Оптимизация и настройка PostgreSQl.
      60 000 руб
      Узнать больше
    • Регулярная поддержка и мониторинг производительности 1С
      Регулярная поддержка и мониторинг производительности 1С
      • Контроль вносимых изменений;
      • Исключение избыточной нагрузки;
      • Обеспечение работоспособности системы
      от 30 000 руб
      Узнать больше
    Подпишитесь на рассылку
    Неверно заполнено имя
    Заполнение имени обязательно
    Неверно заполнено
    Заполнение обязательно

    Рассылка не чаще 1 раза в месяц. Вы можете отписаться в любое время.

    Данные конфиденциальны и не могут быть переданы третьим лицам

    Нажимая на кнопку «Подписаться», вы даете согласие на обработку своих персональных данных

    Спасибо, !
    Вы подписались на рассылку новых экспертных статей и полезных материалов по автоматизации на базе 1С.
    • Maxim Kuznetsov
      Спасибо за статью. Запрет свопинга разделяемой памяти -- это в Linux параметр vm.swappiness? Свап уже полностью отключен у меня на сервере Postgres. Нужно ли отключать его и на сервере 1С?
    • Елена Барсукова
      Добрый день! Отключение файла подкачки на сервере 1С может привести к ситуациям с полной загруженностью системы и ошибками "out of memory". Учитывая, что в практике эксплуатации 1С было множество ситуаций, когда система занимала всю память и вызывала системные ошибки, в отключении свопинга на сервере 1С нет необходимости. Ощутимого прироста производительности после отключения файла подкачки на сервере 1С также не наблюдается в большинстве случаев.
    • Maxim Kuznetsov
      Спасибо за ответ.
    Подпишитесь на бизнес-новости и статьи наших экспертов

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

    Вы
    Выберите пункт
    Ваше имя
    Неверно заполнено поле
    Заполнение поля обязательно
    E-mail
    Неверно заполнено поле
    Заполнение поля обязательно
    Мы будем отправлять письма не чаще 1 раза в месяц
    Вы можете отписаться от рассылки в любой момент
    Данные конфиденциальны и не могут быть переданы третьим лицам

    Нажимая на кнопку «Подписаться», вы даете
    согласие на обработку своих персональных данных

    Спасибо!
    Вы успешно подписались на бизнес-новости
    и статьи наших экспертов.

    Читайте также

    • Ограничение прав на уровне записи 1С RLS

      Восьмая версия платформы «1С:Предприятие» (сегодня 8.3) несла в себе множество изменений по отношению к «семерке», среди которых особенно выделялся механизм ограничения прав доступа на уровне ...

      • повышение производительности 1С
      • повышение скорости работы 1С
    • Журнал регистрации 1С - настройка, хранение и его очистка

      Большинство официальных систем 1С обладают большим количеством разнообразных вспомогательных функций. Журнал регистрации является одной из ценнейших возможностей для систем с большим числом активных п...

      • повышение производительности 1С
      • повышение скорости работы 1С
      • Настройка
    • Кластер серверов 1С для высоконагруженных систем

      Если существует необходимость поддерживать работоспособность систем на платформе 1С круглосуточно, то кластер серверов будет идеальным вариантом. Его преимущества помогут забыть о жалобах пользователе...

      • оптимизация высоконагруженных систем
      • повышение скорости работы 1С
      • повышение производительности 1С
      • Сервер 1C
    • Ошибка исключительной блокировки информационной базы

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

      • оптимизация высоконагруженных систем
      • блокировки 1С
    Перейти ко всем статьям
    ООО «Вайзэдвайс»
    8 (499) 705-75-53
    Заказать обратный звонок
    welcome@wiseadvice-it.ru
    109456, Москва, Рязанский проспект, д.75, корп. 4,
    2-я башня, 3-й этаж
    Схема проезда
    © 2003–2018 ООО «ИНТЕЛИС — автоматизация» (ИНН 7721558806)
    Все указанные на сайте цены носят информационный характер
    и не являются публичной офертой (ст. 437 ГК РФ)

    Корпоративная политика в отношении персональных данных

    Политика в области качества

    • Программы 1С
    • Наши решения на базе 1С
    • Типовые программы 1С
    • Сравнение версий 1С
    • Демо-версии 1С
    • ИТС 1С
    • Обслуживание 1С
    • 1С Фреш
    • Внедрение 1С
    • Обновление 1С
    • Настройка и доработка 1С
    • Автоматизация на базе 1С
    • Установка 1С
    • Консультации по 1С
    • О компании
    • Наш опыт
    • Реализованные проекты
    • Работа у нас
    • Блог
    • Полезные статьи
    • Контакты
    • Цены
    • Доставка и оплата
    Разработка сайта —
    Эфектум
    Другие компании
    консалтинговой группы WiseAdvice