Что на самом деле ускоряет сервер 1С: процессор, память, диски, кластер

· 10 мин

Содержание

Для сервера 1С важнее всего три вещи: высокая частота процессора на одно ядро, быстрые диски под базу данных (NVMe SSD) и достаточный объём оперативной памяти, чтобы СУБД держала рабочие данные в кеше. Количество ядер и «серверность» железа идут следом.

Частая ошибка при выборе — купить двухпроцессорную машину на 64 ядра с частотой 2,1 ГГц и ждать, что 1С «полетит». Не полетит: проведение документа, закрытие месяца и расчёт зарплаты выполняются в основном в одном потоке. Сервер 1С с 8 ядрами по 4,5 ГГц нередко работает заметно быстрее такого монстра.

Как выбрать процессор для сервера 1С: частота против ядер

Один серверный вызов 1С (провести документ , сформировать отчёт) обрабатывает рабочий процесс rphost, и внутри вызова код идёт последовательно. Поэтому время отклика пользователя упирается в скорость одного ядра.

Ядра нужны для другого — для параллельной работы многих пользователей и фоновых заданий. Каждый одновременный тяжёлый вызов занимает своё ядро.

Как рассуждать при выборе:

  • 🚀 Частота в турбо-режиме — главный параметр. Ориентир для отзывчивой работы — от 3,5 ГГц под нагрузкой, лучше 4+ ГГц.
  • 🧮 Число ядер — по количеству одновременно активных пользователей и фоновых заданий, а не по общему числу сотрудников в базе.
  • 🧠 Объём кеша L3 — чем больше, тем лучше для СУБД.
  • 🔌 Один сокет против двух — при равной суммарной мощности один процессор с высокой частотой обычно выгоднее: нет задержек между сокетами (NUMA).
ВариантСильная сторонаСлабая сторона
Много ядер, 2,0–2,5 ГГцМного пользователей одновременноМедленное проведение и закрытие месяца
8–16 ядер, 4+ ГГцБыстрый отклик, тяжёлые операцииПотолок при большом числе сеансов
Два сокетаМасштаб для сотен пользователейДороже, нужна настройка NUMA в СУБД

Если сервер уже куплен, проверьте план электропитания. В Windows поставьте схему «Высокая производительность», в BIOS/UEFI — профиль максимальной производительности. Энергосберегающий режим по умолчанию может держать частоту ниже паспортной.

Посмотреть реальную частоту под нагрузкой можно в Диспетчере задач на вкладке «Производительность» → ЦП. Если при проведении документа она падает до 1,5–2 ГГц, дело в электропитании, а не в 1С.

Оперативная память сервера 1С: объём и каналы

Памяти на сервере потребляют три потребителя: операционная система, процессы кластера 1С (ragent, rmngr, rphost) и СУБД. Самый прожорливый — СУБД: чем больше базы помещается в кеш, тем реже она лезет на диск.

Ориентиры для расчёта (примерно, для схемы «1С и СУБД на одной машине»):

  • 💻 ОС — 4–8 ГБ.
  • ⚙️ Кластер 1С — от 4 ГБ на небольшую нагрузку, плюс ориентировочно 150–300 МБ на каждый активный сеанс в тяжёлых конфигурациях.
  • 🗄️ СУБД — в идеале объём, сравнимый с «горячей» частью базы. Для базы 50 ГБ комфортно отдать СУБД 32–48 ГБ.

Почему важны каналы памяти

Процессор читает память через несколько каналов. Сервер с 64 ГБ одной планкой работает медленнее, чем с теми же 64 ГБ четырьмя планками по 16 ГБ. Заполняйте все каналы процессора одинаковыми модулями — это бесплатный прирост скорости.

Сколько отдать СУБД

  • MS SQL Server без ограничений забирает почти всю свободную память. Обязательно задайте параметр max server memory в свойствах сервера SQL, оставив 1С и ОС их долю.
  • PostgreSQL использует связку из своего буфера и кеша ОС. Типовая отправная точка: shared_buffers около 25% ОЗУ, effective_cache_size — 50–75% ОЗУ.

Нехватку памяти видно по росту использования файла подкачки. Если сервер постоянно уходит в своп, никакая настройка 1С не поможет — нужна память.

Дисковая подсистема для 1С: скорость важнее объёма

База 1С в клиент-серверном режиме — это сотни мелких случайных чтений и записей в секунду. Для такой нагрузки решает не линейная скорость и не объём, а число операций ввода-вывода в секунду (IOPS) и задержка.

Тип накопителяСлучайные операцииПодходит для
HDD 7200 об/мин~100–200 IOPSТолько архив резервных копий
SATA SSDдесятки тысяч IOPSНебольшие базы, тестовый контур
NVMe SSDсотни тысяч IOPSРабочие базы, tempdb, журналы транзакций

Как разложить файлы по дискам

Хорошая схема для сервера с несколькими накопителями:

  1. Файлы данных СУБД — на NVMe, в зеркале (RAID 1) или RAID 10.
  2. Журнал транзакций (.ldf у MS SQL, WAL у PostgreSQL) — на отдельный быстрый том: запись в журнал идёт при каждом проведении.
  3. tempdb у MS SQL — на NVMe. 1С активно пользуется временными таблицами, и медленный tempdb тормозит отчёты.
  4. Резервные копии — на отдельный диск или в хранилище. Не на тот же массив, что база.

Выбирайте SSD серверного класса с защитой от потери питания (PLP). У потребительских NVMe скорость записи падает при длительной нагрузке, а при внезапном отключении есть риск повредить данные.

RAID 5 и RAID 6 на запись медленнее RAID 10, для базы 1С их лучше не использовать. Если сервер виртуальный — уточните у провайдера, какие диски под виртуальной машиной и есть ли ограничение IOPS на тариф.

Настройка ОС и сети под сервер 1С

Железо — половина дела. Дальше Windows Server (2016 и новее) или Linux нужно подготовить под нагрузку.

Операционная система

  • 🔋 Электропитание — схема «Высокая производительность», о ней выше.
  • 🛡️ Антивирус — добавьте в исключения каталог данных кластера (по умолчанию srvinfo в каталоге установки сервера 1С), каталоги с файлами СУБД и резервных копий. Проверка каждого обращения к файлу базы съедает скорость диска.
  • 🔄 Обновления ОС — ставьте по графику, а не автоматически среди рабочего дня: перезагрузка оборвёт сеансы пользователей.
  • 🧹 Лишние роли — сервер 1С не должен одновременно быть файловым хранилищем отдела, почтой и терминалом на 30 человек.

Сеть

Схема обмена такая: клиент обращается к агенту сервера (порт 1540), затем к менеджеру кластера (1541) и рабочим процессам из диапазона портов, заданного в свойствах рабочего сервера (по умолчанию 1560:1591). Все эти порты должны быть открыты в брандмауэре.

Критичнее всего канал между сервером 1С и СУБД. Между ними идёт огромное число мелких запросов, поэтому решает задержка, а не ширина канала.

  • Лучший вариант — 1С и СУБД на одной машине. Для MS SQL в этом случае используется протокол Shared Memory, сетевой задержки нет вовсе.
  • Если машины разные — минимум 1 Гбит/с, лучше 10 Гбит/с, в одной стойке, без лишних коммутаторов и VPN между ними.

Параметры кластера серверов 1С, которые стоит проверить

Кластер настраивается в консоли администрирования серверов 1С:Предприятия. Большинство параметров по умолчанию разумны, но несколько стоит знать.

В свойствах рабочего сервера

  • Количество ИБ на процесс и Количество соединений на процесс — управляют тем, сколько рабочих процессов rphost поднимет кластер. При значении 1 в «ИБ на процесс» каждая база получает свой процесс: падение одной не задевает другие.
  • Максимальный объём памяти рабочих процессов — общий потолок для всех rphost сервера. Ставьте его с учётом того, сколько памяти нужно СУБД.
  • Безопасный расход памяти за один вызов — защищает от «тяжёлого» отчёта, который пытается съесть всю память. Превысивший порог вызов прерывается.
  • Диапазон IP-портов — тот самый 1560:1591. На сервере со многими базами диапазон расширяют.

В свойствах кластера

  • Режим распределения нагрузки — по производительности или по памяти. Для большинства установок подходит распределение по производительности.
  • Интервал перезапуска и допустимый объём памяти — плановый перезапуск рабочих процессов спасает от постепенного разбухания памяти. Перезапуск идёт с переводом сеансов на новый процесс, но запускайте его в нерабочее время.

В настройках информационной базы и СУБД

  • Режим управляемых блокировок в конфигурации снижает конфликты пользователей. В типовых конфигурациях он уже включён.
  • В MS SQL фирма 1С рекомендует параметр max degree of parallelism = 1: параллельные планы запросов в 1С чаще мешают, чем помогают.
  • Для PostgreSQL используйте сборку, адаптированную для 1С. Стандартная сборка без доработок работает с 1С заметно хуже.
  • Регламентные операции СУБД — обновление статистики и перестроение индексов (MS SQL), VACUUM ANALYZE (PostgreSQL) — настройте ночным заданием.

Любые изменения параметров кластера и СУБД сначала проверяйте на тестовой копии. Ошибочный лимит памяти может обрывать вызовы пользователей посреди проведения документа.

Остановка службы агента сервера 1С или перезапуск СУБД обрывает все сеансы. Предупредите пользователей и делайте это вне рабочего времени.

Как найти узкое место: мониторинг сервера 1С

Прежде чем покупать новое железо, выясните, во что упирается текущее. Четыре вопроса и инструменты для ответа:

1. Процессор. Откройте Монитор ресурсов Windows. Если одно ядро загружено на 100% при проведении, а остальные простаивают — нужна частота, а не ядра. Если загружены все ядра и счётчик «Длина очереди процессора» долго держится выше числа ядер — нужны ядра.

2. Память. Смотрите свободную память и активность файла подкачки. У MS SQL полезен счётчик Page life expectancy: если он часто проседает до десятков секунд, СУБД не хватает памяти под кеш.

3. Диски. Счётчики Avg. Disk sec/Read и Avg. Disk sec/Write по тому с базой. Для SSD нормальные значения — единицы миллисекунд. Стабильно больше 20 мс — диски не справляются.

4. Блокировки. Если железо загружено слабо, а пользователи всё равно ждут — проблема не в оборудовании, а в ожиданиях на блокировках или в неэффективном коде конфигурации.

Инструменты 1С

  • 📋 Консоль кластера — список сеансов и рабочих процессов, занятая память, колонка доступной производительности процесса. Сеанс с огромным временем вызова сразу видно.
  • 📝 Технологический журнал — включается файлом logcfg.xml в каталоге conf платформы. Пишет длительные вызовы, ошибки, ожидания на блокировках и взаимоблокировки. Начинайте с фильтра по длительности, иначе журнал за час займёт гигабайты.
  • 📊 Тест Гилёва — популярная обработка для сравнения скорости однопоточных операций до и после замены железа или настроек. Подходит для сравнения «было/стало» на одном сервере, но не как абсолютная оценка.
  • 🔍 Центр управления производительностью из пакета корпоративного инструментария — для крупных внедрений, где нужен анализ медленных операций в динамике.

Замерьте типовую операцию до изменений: например, проведение одного и того же документа или формирование ОСВ за год. Без замера «стало быстрее» — только ощущение.

Ориентиры по конфигурации сервера под число пользователей

Ниже — примерные стартовые конфигурации для типовых БП, ЗУП, УТ. ERP и сильно доработанные базы требуют больше, особенно по памяти и дискам.

Сколько пользователей одновременно работают в базах 1С?

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

Частые вопросы

Что лучше для 1С: PostgreSQL или MS SQL Server?
Обе СУБД официально поддерживаются. MS SQL проще в администрировании под Windows, PostgreSQL бесплатен и хорошо работает в сборке, адаптированной для 1С. На небольших и средних базах разница в скорости при правильной настройке невелика.
Нужна ли серверная материнская плата и ECC-память?
Для рабочей базы — да. ECC-память исправляет одиночные ошибки, которые иначе могут незаметно испортить данные. Серверная платформа также даёт удалённое управление и надёжные контроллеры дисков.
Можно ли поставить сервер 1С на Linux?
Да, сервер 1С:Предприятия 8.3 выпускается для Linux и работает в связке с PostgreSQL. Лицензирование и настройка отличаются от Windows, но для производительности это равноценный вариант.
Помогает ли отключение гиперпоточности (Hyper-Threading)?
Однозначного ответа нет. На одних нагрузках прирост от отключения заметен, на других пропадает. Проверяйте замером на своей базе, а не по советам с форумов.
Почему после покупки нового сервера 1С не стала быстрее?
Чаще всего виноваты энергосберегающий режим процессора, СУБД без ограничения памяти, медленный диск под журналом транзакций или ожидания на блокировках. Начните с мониторинга по четырём пунктам выше.