Настройка сервера 1С на Linux требования и оптимизация

Про 1С и перенос

1С:Предприятие одна из самых распространённых систем автоматизации бизнеса в России и странах СНГ. Однако перенос сервера 1С с Windows на Linux вызывает у администраторов ряд сложностей. Во-первых, официальная документация 1С фрагментирована и разбросана по разным источникам (ИТС, портал 1С, форумы). Во-вторых, типичная конфигурация «сервер 1С + PostgreSQL на одном железе» требует тонкой настройки параметров ядра, лимитов процессов и СУБД. В-третьих, 1С предъявляет специфические требования к файловой системе, оперативной памяти и сетевым настройкам, без учёта которых производительность падает, а кластер начинает «сыпаться» ошибками. В этой статье мы развернём сервер 1С на Linux (Ubuntu Server 22.04 LTS), настроим PostgreSQL, оптимизируем параметры системы и решим типичные проблемы, такие как «Too many open files».

Решение

Сервер 1С в Linux состоит из трёх основных компонентов:

  • Агент сервера (ragent) центральный процесс, управляющий кластером. Порт по умолчанию 1540.
  • Рабочий процесс (rphost) процессы, выполняющие пользовательские запросы. Порт по умолчанию 1541 и выше.
  • СУБД  PostgreSQL (наиболее распространённый выбор для Linux) или Tantor SE 1C (специализированная сборка от 1С).

Основные принципы успешной настройки:

  • Использовать официальную сборку PostgreSQL от 1С, которая содержит оптимизации и патчи для работы с платформой. Подробные требования к аппаратуре и программному обеспечению для установки сервера 1С приведены в официальной документации на сайте ИТС .
  • Разнести WAL-журналы PostgreSQL и основную базу по разным дискам для повышения производительности.
  • Настроить лимиты открытых файлов и памяти для пользователя usr1cv8, так как 1С открывает множество соединений. Рекомендации по настройке приведены в руководстве администратора клиент-серверного варианта .
  • Оптимизировать параметры PostgreSQL в соответствии с объёмом ОЗУ и количеством пользователей.

В этой статье мы установим платформу 1С:Предприятие 8.3 (64-битная) на Ubuntu 22.04 LTS, настроим PostgreSQL 15 (патченную версию от 1С), создадим кластер и информационную базу.

Пошаговая инструкция

1. Требования к оборудованию и операционной системе

Перед установкой убедитесь, что сервер соответствует минимальным требованиям. Для production-нагрузок рекомендуется использовать 64-битную версию ОС и платформы .

Минимальные требования для кластера 1С (64-бит) :

ПараметрЗначение
Процессорx86-64 (Intel Xeon/AMD EPYC), ARM64 или Эльбрус (только с лицензией CORP)
ОЗУ4 ГБ (рекомендуется 8 ГБ и более)
ДискSSD или NVMe, от 1 ГБ под платформу
ПортыUSB (для HASP-ключа), TCP 1540, 1541, 1560–1591

Поддерживаемые дистрибутивы Linux (x86-64) :

  • Astra Linux Special Edition — 1.6, 1.7, 1.8 (ядро generic)
  • Alt Linux — 8 SP, 10 SP, Server 10
  • Ubuntu — 20.04 LTS, 22.04 LTS, 24.04 LTS
  • Debian — 10, 11, 12
  • Red Hat Enterprise Linux — 8, 9
  • Oracle Linux — 8, 9

2. Подготовка системы

2.1. Обновление системы и установка зависимостей

sudo apt update && sudo apt upgrade -y
sudo apt install -y wget curl unzip mc htop ntp

2.2. Настройка имени хоста

sudo hostnamectl set-hostname 1c-server.local
echo "192.168.1.10 1c-server.local" | sudo tee -a /etc/hosts

2.3. Отключение брандмауэра (на время настройки)

sudo ufw disable

В production брандмауэр настраивается после установки: открываются порты 1540, 1541, 5432 (PostgreSQL), 22 (SSH).

3. Установка PostgreSQL (патченная версия от 1С)

1С рекомендует использовать специальную сборку PostgreSQL, доступную на портале releases.1c.ru . Для Ubuntu установка выполняется через DEB-пакеты.

3.1. Добавление репозитория PostgreSQL 1С

# Добавляем ключ репозитория
wget --quiet -O - https://postgresql.1c.ru/keys/1c.asc | sudo apt-key add -

# Добавляем репозиторий (для Ubuntu 22.04)
echo "deb http://postgresql.1c.ru/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/1c_postgresql.list

sudo apt update

3.2. Установка PostgreSQL

Узнайте актуальную версию на postgresql.1c.ru. На момент написания PostgreSQL 15:

sudo apt install -y postgresql-15-1c

После установки проверьте статус:

sudo systemctl status postgresql

3.3. Настройка PostgreSQL

Основной конфигурационный файл: /etc/postgresql/15/main/postgresql.conf

Рекомендуемые параметры для сервера с 32 ГБ ОЗУ и 50+ пользователями :

# Подключения
max_connections = 200                # количество одновременных подключений

# Память
shared_buffers = 8GB                 # 25% от ОЗУ
work_mem = 128MB                     # ОЗУ / 64..128
maintenance_work_mem = 2GB           # ОЗУ / 16
effective_cache_size = 24GB          # ОЗУ - shared_buffers

# Диск
random_page_cost = 1.1               # для SSD/NVMe (1.1-1.3)
effective_io_concurrency = 200       # для SSD

# WAL
min_wal_size = 2GB
max_wal_size = 8GB
wal_buffers = 16MB

# Автовакуум
autovacuum = on
autovacuum_max_workers = 4           # половина от количества ядер CPU
autovacuum_naptime = 20s
autovacuum_vacuum_scale_factor = 0.05
autovacuum_analyze_scale_factor = 0.02

# Синхронизация
fsync = on
synchronous_commit = off              # увеличивает производительность, но возможна потеря последних транзакций

Важно: после изменения параметров перезапустите PostgreSQL:

sudo systemctl restart postgresql

3.4. Настройка доступа к PostgreSQL

Отредактируйте /etc/postgresql/15/main/pg_hba.conf:

# Разрешить локальные подключения с паролем
host    all             all             127.0.0.1/32            md5
# Разрешить подключения из локальной сети (при необходимости)
host    all             all             192.168.1.0/24          md5

Создайте базу данных и пользователя для 1С:

sudo -u postgres psql
CREATE DATABASE "1C_Accounting" WITH ENCODING='UTF8' LC_COLLATE='ru_RU.UTF-8' LC_CTYPE='ru_RU.UTF-8';
CREATE USER "1c_user" WITH PASSWORD 'strong_password';
GRANT ALL PRIVILEGES ON DATABASE "1C_Accounting" TO "1c_user";
\q

4. Установка платформы 1С:Предприятие

4.1. Скачивание дистрибутива

Дистрибутив технологической платформы для Linux доступен на releases.1c.ru (требуется регистрация и действующий договор ИТС). Начиная с версии 8.3.20, 1С предоставляет единый дистрибутив в виде .run-файлов, что упрощает установку . Файл называется 1c-enterprise83-server_8.3.*_amd64.deb или setup-full-*-x86_64.run.

Загрузите его на сервер.

4.2. Установка

Для Debian-систем (Ubuntu):

sudo dpkg -i 1c-enterprise83-server_8.3.*_amd64.deb

Если возникает ошибка зависимостей, выполните:

sudo apt --fix-broken install

Для установки с использованием единого дистрибутива (.run-файл):

chmod +x setup-full-8.3.*-x86_64.run
sudo ./setup-full-8.3.*-x86_64.run

Подробная инструкция по установке в различных Linux-системах (Debian/Ubuntu и CentOS/RHEL) приведена в официальной документации на ИТС .

Установщик автоматически создаст пользователя usr1cv8, от которого работают процессы сервера, и добавит systemd-сервисы :

  • srv1cv83 — агент сервера (ragent)
  • srv1cv83-<port> — рабочие процессы (rphost)

4.3. Настройка лимитов для пользователя usr1cv8

Типичная ошибка при работе 1С на Linux  Too many open files. Её решение увеличение лимитов .

Способ 1: через limits.conf

sudo tee -a /etc/security/limits.conf << EOF
usr1cv8 soft nofile 65000
usr1cv8 hard nofile 65000
usr1cv8 soft nproc 32768
usr1cv8 hard nproc 65536
usr1cv8 soft core unlimited
usr1cv8 hard core unlimited
EOF

Способ 2: через systemd (более надёжный) 

sudo mkdir -p /etc/systemd/system/srv1cv83.service.d
sudo tee /etc/systemd/system/srv1cv83.service.d/override.conf << EOF
[Service]
LimitNOFILE=65000
LimitNOFILESoft=65000
LimitNPROC=65536
EOF

sudo systemctl daemon-reload

4.4. Запуск и проверка

Согласно официальной документации 1С , запуск агента сервера выполняется через systemd: sudo systemctl enable srv1cv83
sudo systemctl start srv1cv83
sudo systemctl status srv1cv83

Проверьте, что порты слушаются:

sudo netstat -tlnp | grep 1540
sudo netstat -tlnp | grep 1541

Проверьте, запущены ли процессы кластера :

ps ax | grep "1C/v8.3"

5. Настройка кластера 1С

Управление кластером выполняется через оснастку 1С (на Windows) или через утилиту командной строки rac (Remote Administration Console), входящую в состав платформы. Подробное описание администрирования кластера приведено в главе 5 руководства администратора .

5.1. Установка консоли администрирования на рабочую станцию

На компьютере администратора (Windows) установите клиентскую часть 1С:Предприятие, включающую оснастку «Администрирование серверов 1С:Предприятия».

5.2. Создание информационной базы

  1. Запустите оснастку, укажите адрес сервера: 1c-server.local (порт 1540).
  2. В разделе «Кластеры» будет отображён автоматически созданный кластер.
  3. Создайте информационную базу:
    • Имя: «Бухгалтерия»
    • Тип: «Клиент-серверная»
    • Сервер баз данных: localhost
    • Имя базы: 1C_Accounting
    • Пользователь SQL: 1c_user
    • Пароль: strong_password

5.3. Настройка параметров кластера через RAC

На сервере можно использовать утилиту rac для управления. Примеры команд :

# Аутентификация
/opt/1C/v8.3/x86_64/rac auth --user=Administrator --password=

# Просмотр кластеров
/opt/1C/v8.3/x86_64/rac cluster list

# Изменение параметров кластера (память)
/opt/1C/v8.3/x86_64/rac cluster update --cluster=<cluster-id> --memory-size=70

6. Оптимизация системы для работы 1С

6.1. Настройка параметров ядра Linux

Увеличьте максимальное количество открытых файлов для всей системы:

echo "fs.file-max = 65000" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

6.2. Настройка сетевых параметров (для высоких нагрузок)

При высоком количестве подключений может потребоваться настройка TCP-стека:

sudo tee -a /etc/sysctl.conf << EOF
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.core.somaxconn = 1024
net.core.netdev_max_backlog = 5000
EOF
sudo sysctl -p

6.3. Отключение прозрачных огромных страниц (Transparent Huge Pages)

THP может негативно влиять на производительность PostgreSQL:

echo 'never' | sudo tee /sys/kernel/mm/transparent_hugepage/enabled

Для постоянного отключения добавьте в /etc/rc.local или используйте systemd.

6.4. Установка дополнительных библиотек и шрифтов

Для корректной работы платформы 1С в Linux необходимо установить дополнительные библиотеки и шрифты Microsoft Core Fonts :

# Установка библиотек
apt-get install libfreetype6 libgsf-1-common unixodbc glib2.0

# Установка шрифтов Microsoft Core Fonts
apt-get -y install ttf-mscorefonts-installer
fc-cache –fv

7. Резервное копирование

Согласно документации 1С , операции резервного копирования в клиент-серверном варианте выполняются штатными средствами СУБД.

7.1. Бэкап PostgreSQL

Создайте скрипт для ежедневного дампа:

#!/bin/bash
BACKUP_DIR=/backup/postgresql
DATE=$(date +%Y-%m-%d)
pg_dump -U postgres 1C_Accounting > $BACKUP_DIR/1c_backup_$DATE.sql
find $BACKUP_DIR -name "*.sql" -mtime +30 -delete

Добавьте в crontab:

0 2 * * * /usr/local/bin/backup_1c.sh

7.2. Бэкап конфигурации кластера

Конфигурация кластера хранится в каталоге /var/lib/1C/. Регулярно копируйте его.

Устранение распространённых проблем

ПроблемаВероятная причинаРешение
Too many open filesИсчерпан лимит открытых файлов для usr1cv8Увеличить лимиты через limits.conf или systemd 
Ошибка при выполнении файловой операцииНедостаточно места на диске или проблемы с правамиПроверить свободное место, убедиться, что /var/lib/1C принадлежит usr1cv8
Не удаётся подключиться к кластеру из оснасткиБрандмауэр блокирует порт 1540, или некорректно разрешается hostnameОткрыть порт: sudo ufw allow 1540/tcp. Убедиться, что IP-адрес сервера корректно разрешается в его hostname в файле /etc/hosts 
Медленная работа PostgreSQLНеоптимальные параметры postgresql.confПересчитать параметры согласно рекомендациям выше, перезапустить PostgreSQL
Ошибка nf_conntrack: table fullПереполнение таблицы отслеживания соединенийУвеличить net.netfilter.nf_conntrack_max в sysctl.conf
Не запускается srv1cv83 после обновленияПлатформа несовместима с новой версией ядраПроверить логи journalctl -u srv1cv83. Откатить обновление или использовать рекомендуемую версию ОС 
Ошибка Connection refused при подключении к кластеруАгент сервера не запущен или порт заблокированПроверить systemctl status srv1cv83, убедиться, что порт 1540 открыт и слушается 

Мы развернули сервер 1С на Linux (Ubuntu 22.04 LTS) с использованием PostgreSQL (патченная версия от 1С), настроили кластер, увеличили лимиты системы для работы с большим количеством соединений и оптимизировали параметры СУБД. Настройка сервера 1с linux требует внимания к деталям: выбор правильной версии PostgreSQL, настройка лимитов открытых файлов, корректная конфигурация памяти и дисков. При соблюдении этих рекомендаций сервер 1С на Linux работает стабильно и производительно, не уступая Windows-реализации, а в ряде сценариев (высокая нагрузка, стоимость лицензий) даже превосходит её. Подробная документация по всем аспектам администрирования доступна в Информационной системе 1С:ИТС .

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Популярные
Новые Старые

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
Menu