Использование Debian и PostgreSQL совместно с 1С: разбор совместимости, мифов об архитектурах и пошаговая настройка

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При переходе на свободное программное обеспечение перед многими администраторами встает вопрос выбора операционной системы для СУБД PostgreSQL, обслуживающей базы данных 1С:Предприятие. Часто в официальных списках совместимости платформы 1С фигурируют лишь определенные коммерческие или наиболее популярные дистрибутивы, такие как Red Hat Enterprise Linux, CentOS или Ubuntu. В связи с этим возникает сомнение: можно ли использовать стабильный и надежный Debian в качестве платформы под PostgreSQL для 1С? Не возникнет ли критических проблем совместимости?

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

Миф 1: Debian — это надстройка над Ubuntu? Разбираемся в иерархии дистрибутивов

В процессе обсуждений на форумах нередко можно встретить утверждение, что «Debian — это надстройка над Ubuntu». Это в корне неверное представление, которое полностью переворачивает реальное положение дел. Рассмотрим факты:

  1. Кто первоисточник: Debian — это один из старейших, полностью независимых и авторитетных дистрибутивов Linux, созданный еще в 1993 году. Именно Ubuntu является производным дистрибутивом (деривативом), который собирается на основе пакетной базы тестовой ветки Debian (Debian Testing).
  2. Стабильность и потребление ресурсов: Debian славится своим консервативным подходом к стабильности программного обеспечения и отсутствием лишних фоновых служб (таких как Snap в Ubuntu), которые могут непредсказуемо расходовать оперативную память и ресурсы процессора. Для выделенного сервера баз данных PostgreSQL «чистый» Debian подходит даже лучше, так как он обеспечивает минимальные накладные расходы на работу самой операционной системы.
  3. Совместимость пакетов: Поскольку Ubuntu базируется на Debian, они используют один и тот же пакетный менеджер apt и формат пакетов .deb. Опыт администрирования, скрипты автоматизации и подходы к настройке системы практически полностью идентичны для обеих ОС.

Миф 2: Разница между архитектурами amd64 и x86_64

Еще одно техническое заблуждение, с которым сталкиваются специалисты при поиске дистрибутивов PostgreSQL для Debian — это путаница в обозначениях архитектур процессоров. Некоторые ошибочно предполагают, что amd64 и x86_64 — это разные архитектуры, или что одна из них является ограниченной (32-битной с расширением памяти PAE). Выясним истину:

Совместимость версий PostgreSQL для 1С на Debian

Существует мнение, что под Debian доступны только старые версии PostgreSQL (до 9.6). Это утверждение давно потеряло актуальность. На сегодняшний день компания Postgres Professional выпускает и активно поддерживает специализированные сборки СУБД для нужд 1С (Postgres Pro 1C) для всех актуальных мажорных версий (14, 15, 16, 17) под стабильные версии Debian (11, 12). Данные сборки содержат необходимые патчи для корректной работы с платформой «1С:Предприятие», включая поддержку типов данных mchar, varchar и оптимизацию планов выполнения запросов.

Пошаговое руководство по подготовке Debian и установке PostgreSQL

Рассмотрим детально процесс подготовки операционной системы Debian для установки СУБД PostgreSQL с целью последующей работы с базами данных 1С.

Шаг 1: Настройка системных локалей (Locale)

Перед инициализацией кластера баз данных критически важно настроить локаль операционной системы. Если кластер PostgreSQL будет инициализирован с локалью по умолчанию (например, C или POSIX), то при попытке создания базы данных из консоли администрирования 1С вы неизбежно получите ошибку, связанную с порядком сортировки строк. Платформа 1С жестко требует поддержки русской локали с кодировкой UTF-8.

Выполним переконфигурацию локалей в Debian. Для этого в терминале запустим следующую команду:

sudo dpkg-reconfigure locales

В появившемся интерактивном меню найдем и отметим пробелом локаль ru_RU.UTF-8 UTF-8, а также en_US.UTF-8 UTF-8. На следующем шаге выберем ru_RU.UTF-8 в качестве локали по умолчанию для всей системы. Чтобы изменения вступили в силу без перезагрузки сервера, выполним команду:

sudo update-locale LANG=ru_RU.UTF-8

Шаг 2: Настройка параметров ядра Linux (sysctl.conf)

Для стабильной работы СУБД под высокими нагрузками настроим параметры виртуальной памяти и сетевого стека в операционной системе Debian. Откроем конфигурационный файл:

sudo nano /etc/sysctl.conf

Добавим в конец файла следующие параметры, оптимизирующие работу с памятью и предотвращающие агрессивное поведение механизма OOM Killer (который может принудительно завершить процесс PostgreSQL при нехватке памяти):


# Управление выделением памяти без избыточного резервирования
vm.overcommit_memory = 2
vm.overcommit_ratio = 80

# Оптимизация сброса «грязных» страниц памяти на диск
vm.dirty_background_ratio = 5
vm.dirty_ratio = 10

# Настройка пространства имен для разделяемой памяти (для современных версий PG значения по умолчанию обычно достаточны, но лучше зафиксировать)
kernel.shmmax = 18446744073709551615
kernel.shmall = 18446744073709551615

Применим изменения конфигурации ядра без перезагрузки системы:

sudo sysctl -p

Также настоятельно рекомендуется отключить механизм Transparent Huge Pages (THP), так как он часто приводит к фрагментации оперативной памяти и падению производительности баз данных под управлением PostgreSQL. Для этого добавим команду отключения в автозагрузку системы или настроим соответствующий сервис systemd.

Шаг 3: Добавление репозитория и установка Postgres Pro 1C

Для установки специализированной СУБД воспользуемся официальным репозиторием Postgres Pro. Подключим репозиторий для нашей версии Debian (например, Debian 12) и установим СУБД (рассмотрим на примере версии 16):


# Скачиваем и устанавливаем ключ репозитория
wget -O - https://repo.postgrespro.ru/pgpro-archive/pgpro-16/keys/GPG-KEY-POSTGRESPRO | sudo apt-key add -

# Добавляем репозиторий в список источников
echo "deb https://repo.postgrespro.ru/pgpro-archive/pgpro-16/debian bookworm main" | sudo tee /etc/apt/sources.list.d/postgrespro.list

# Обновляем списки пакетов и устанавливаем СУБД для 1С
sudo apt-get update
sudo apt-get install postgrespro-1c-16-server postgrespro-1c-16-contrib

Шаг 4: Инициализация СУБД с помощью pg-setup

Для правильной инициализации базы данных под требования 1С воспользуемся фирменной утилитой автоматической настройки от Postgres Pro. Она автоматически создаст базу данных с правильной локалью и применит базовые оптимизационные настройки под конфигурации 1С:

sudo /opt/pgpro/1c-16/bin/pg-setup initdb --tune=1c --locale=ru_RU.UTF-8

После успешной инициализации добавим службу в автозапуск и запустим СУБД:


sudo systemctl enable postgrespro-1c-16
sudo systemctl start postgrespro-1c-16

Шаг 5: Тонкая настройка postgresql.conf для 1С

Для достижения максимального быстродействия нам необходимо отредактировать конфигурационный файл СУБД. Настройки утилиты pg-setup дают хорошую базу, но параметры стоит адаптировать под объем оперативной памяти вашего сервера. Откроем конфигурационный файл:

sudo nano /var/lib/pgpro/1c-16/data/postgresql.conf

Проанализируем ключевые параметры и установим оптимальные значения (пример расчета приведен для сервера с 32 ГБ оперативной памяти, выделенного исключительно под СУБД):

После изменения параметров перезапустим СУБД для применения настроек:

sudo systemctl restart postgrespro-1c-16

Особенности гибридной схемы работы: Сервер 1С на Windows, база данных на Debian

В некоторых ИТ-инфраструктурах используется гибридная архитектура: сервер приложений «1С:Предприятие» разворачивается на операционной системе Windows Server (например, из-за необходимости использования COM-соединений или интеграции со специфическим Windows-софтом), а СУБД PostgreSQL выносится на производительный сервер под управлением Debian Linux. Рассмотрим ключевые нюансы работы такой схемы:

Сетевые задержки (Latency): Это наиболее критический фактор производительности гибридной схемы. Архитектура платформы 1С такова, что при выполнении бизнес-логики (например, проведении документов) сервер приложений отправляет к СУБД колоссальное количество мелких, последовательных запросов. Если сетевая задержка (пинг) между сервером 1С и сервером СУБД составляет более 0.5–1 мс, общая скорость проведения документов упадет в разы.

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

  1. Размещайте сервер приложений 1С и сервер PostgreSQL на Debian в одном сегменте локальной сети, желательно подключив их к одному коммутатору напрямую.
  2. Если серверы виртуализированы, размещайте их на одном физическом гипервизоре в рамках одной виртуальной сети (vSwitch) для обмена данными на уровне оперативной памяти хоста.
  3. Используйте сетевые адаптеры со скоростью передачи данных не ниже 10 Гбит/с и активируйте технологии оптимизации сетевого стека (такие как Jumbo Frames и Receive Side Scaling).

Внедрение Debian в качестве платформы для СУБД PostgreSQL при работе с 1С — это абсолютно рабочее, надежное и высокопроизводительное решение. Главное — использовать специализированные сборки Postgres Pro, корректно настроить системные локали и параметры ядра Linux, а также обеспечить качественное сетевое соединение между сервером приложений и сервером баз данных.

← На главную