Вопрос о том, как правильно совместить сервер 1С:Предприятие и СУБД на одном физическом сервере, является классическим для системных администраторов. Несмотря на рекомендации разносить эти роли на разные физические машины, современные вычислительные мощности позволяют эффективно использовать один мощный сервер. Однако для достижения максимальной производительности необходимо учитывать множество нюансов: от настроек BIOS и архитектуры процессора до правильного распределения файлов по дисковым накопителям. Разберем по шагам, как выжать максимум из такой конфигурации.
Проанализируем варианты развертывания системы. Существует три основных подхода: прямая установка на ОС (Bare Metal), использование контейнеров и полная виртуализация.
Вывод: Для максимальной скорости работы мы рекомендуем первый вариант — прямую установку СУБД и сервера 1С на одну операционную систему.
Производительность 1С критически зависит от частоты процессора и задержек памяти. Рассмотрим ключевые настройки сервера, особенно если вы используете современные многоядерные решения, такие как AMD Epyc или высокочастотные Intel Core/Xeon.
Во-первых, выясним причину возможных замедлений на уровне процессора. Современные процессоры стремятся экономить энергию, что губительно для 1С. В BIOS необходимо включить режим High Performance и активировать Turbo Boost (или Precision Boost для AMD). Проанализируем схему электропитания в ОС: она также должна быть установлена в режим максимальной производительности. В Linux это делается командой:
cpufreq-set -c ALL -g performance
Во-вторых, обратим внимание на многоканальность памяти. Для процессоров уровня AMD Epyc с 8-канальным контроллером памяти крайне важно, чтобы все каналы были заполнены идентичными модулями. Если процессор поддерживает 8 каналов, а установлено всего 2 или 4 планки, пропускная способность памяти упадет в разы, что мгновенно отразится на скорости работы 1С.
В-третьих, для многопроцессорных систем и процессоров с чиплетной архитектурой (AMD Epyc) критически важна настройка NUMA (Non-Uniform Memory Access). Постарайтесь настроить систему так, чтобы процесс СУБД и процесс сервера 1С работали в рамках одного NUMA-узла, что минимизирует задержки при обращении к оперативной памяти.
Правильное распределение данных по дискам — залог отсутствия очередей на чтение и запись. Рассмотрим пример конфигурации с двумя быстрыми NVMe-накопителями (например, Samsung 990 Pro) и одним SATA SSD.
Рекомендуемая схема распределения:
Важный нюанс для Linux: Для PostgreSQL на NVMe-дисках рекомендуется использовать файловую систему ext4 или XFS. В настройках монтирования стоит проверить параметры, обеспечивающие поддержку TRIM, что критично для долголетия и скорости SSD.
Проанализируем настройки postgresql.conf. Стандартные параметры «из коробки» не подходят для высоконагруженной 1С. Основное внимание уделим следующим параметрам:
shared_buffers — установите примерно в 25% от общего объема оперативной памяти.work_mem — этот параметр определяет объем памяти для операций сортировки. Не ставьте слишком много, так как он выделяется на каждый запрос. Начните с 32MB или 64MB.maintenance_work_mem — для ускорения операций обслуживания (индексы, вакуум) можно выставить 512MB или 1GB.random_page_cost — для NVMe-дисков обязательно снизьте этот параметр до 1.1 (по умолчанию 4.0). Это подскажет планировщику, что случайное чтение почти так же быстро, как последовательное.effective_cache_size — установите в размере 50–75% от всей оперативной памяти.Если сервер 1С и СУБД находятся на одном хосте под управлением Linux, обязательно используйте Unix Domain Sockets для подключения. В строке подключения 1С вместо IP-адреса 127.0.0.1 указывайте путь к сокету (например, /var/run/postgresql). Это позволит избежать накладных расходов сетевого стека TCP/IP.
Часто пользователи сталкиваются с ситуацией, когда файловая база показывает, например, 90 баллов, а SQL-база на том же железе — всего 30. Разберем причины.
1. Синхронная запись: СУБД гарантирует сохранность данных, поэтому ждет подтверждения от диска о каждой записи транзакции. Для ускорения тестов (и работы, если у вас есть надежный ИБП) в PostgreSQL можно настроить synchronous_commit = off. Это даст колоссальный прирост в тестах, сопоставимый с файловым режимом.
2. Блокировки: Проверьте, что в конфигурации 1С включен режим «Управляемые блокировки». В старых конфигурациях или при неправильной настройке СУБД может тратить много времени на ожидание освобождения ресурсов.
3. Настройка TempDB (для MS SQL): Если вы используете MS SQL Server, обязательно создайте несколько файлов tempdb (по количеству ядер процессора, обычно до 8) и разместите их на самом быстром диске.
Таким образом, мы выяснили, что работа 1С и СУБД на одном сервере не только возможна, но и может быть крайне эффективной при правильном подходе к настройке «железа» и системного ПО. Главное — обеспечить компоненты быстрой памятью, настроить процессор на максимальную отдачу и грамотно разнести дисковые операции.