Про 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. Обновление системы и установка зависимостей
text
sudo apt update && sudo apt upgrade -y
sudo apt install -y wget curl unzip mc htop ntp
2.2. Настройка имени хоста
text
sudo hostnamectl set-hostname 1c-server.local
echo "192.168.1.10 1c-server.local" | sudo tee -a /etc/hosts
2.3. Отключение брандмауэра (на время настройки)
text
sudo ufw disable
В production брандмауэр настраивается после установки. Открываются порты 1540, 1541, 5432 (PostgreSQL), 22 (SSH).
3. Установка PostgreSQL (патченная версия от 1С)
1С рекомендует использовать специальную сборку PostgreSQL, доступную на портале releases.1c.ru. Для Ubuntu установка выполняется через DEB пакеты.
3.1. Добавление репозитория PostgreSQL 1С
text
wget --quiet -O - https://postgresql.1c.ru/keys/1c.asc | sudo apt-key add -
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.
text
sudo apt install -y postgresql-15-1c
После установки проверьте статус.
text
sudo systemctl status postgresql
3.3. Настройка PostgreSQL
Основной конфигурационный файл /etc/postgresql/15/main/postgresql.conf.
Рекомендуемые параметры для сервера с 32 ГБ ОЗУ и 50 и более пользователей.
text
# Подключения
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.
text
sudo systemctl restart postgresql
3.4. Настройка доступа к PostgreSQL
Отредактируйте /etc/postgresql/15/main/pg_hba.conf.
text
# Разрешить локальные подключения с паролем
host all all 127.0.0.1/32 md5
# Разрешить подключения из локальной сети (при необходимости)
host all all 192.168.1.0/24 md5
Создайте базу данных и пользователя для 1С.
text
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).
text
sudo dpkg -i 1c-enterprise83-server_8.3.*_amd64.deb
Если возникает ошибка зависимостей, выполните.
text
sudo apt --fix-broken install
Для установки с использованием единого дистрибутива (.run файл).
text
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.
text
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 (более надёжный).
text
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.
text
sudo systemctl enable srv1cv83
sudo systemctl start srv1cv83
sudo systemctl status srv1cv83
Проверьте, что порты слушаются.
text
sudo netstat -tlnp | grep 1540
sudo netstat -tlnp | grep 1541
Проверьте, запущены ли процессы кластера.
text
ps ax | grep "1C/v8.3"
5. Настройка кластера 1С
Управление кластером выполняется через оснастку 1С (на Windows) или через утилиту командной строки rac (Remote Administration Console), входящую в состав платформы. Подробное описание администрирования кластера приведено в главе 5 руководства администратора.
5.1. Установка консоли администрирования на рабочую станцию
На компьютере администратора (Windows) установите клиентскую часть 1С:Предприятие, включающую оснастку «Администрирование серверов 1С:Предприятия».
5.2. Создание информационной базы
Запустите оснастку, укажите адрес сервера: 1c-server.local (порт 1540). В разделе «Кластеры» будет отображён автоматически созданный кластер. Создайте информационную базу.
Имя: «Бухгалтерия»
Тип: «Клиент-серверная»
Сервер баз данных: localhost
Имя базы: 1C_Accounting
Пользователь SQL: 1c_user
Пароль: strong_password
5.3. Настройка параметров кластера через RAC
На сервере можно использовать утилиту rac для управления. Примеры команд.
text
# Аутентификация
/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
Увеличьте максимальное количество открытых файлов для всей системы.
text
echo "fs.file-max = 65000" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
6.2. Настройка сетевых параметров (для высоких нагрузок)
При высоком количестве подключений может потребоваться настройка TCP стека.
text
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.
text
echo 'never' | sudo tee /sys/kernel/mm/transparent_hugepage/enabled
Для постоянного отключения добавьте в /etc/rc.local или используйте systemd.
6.4. Установка дополнительных библиотек и шрифтов
Для корректной работы платформы 1С в Linux необходимо установить дополнительные библиотеки и шрифты Microsoft Core Fonts.
text
# Установка библиотек
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
Создайте скрипт для ежедневного дампа.
text
#!/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.
text
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С:ИТС.