К статье
Практический материал

Администрирование · 11 мин

Сколько ядер использует 1С и как это влияет на выбор сервера

Сколько ядер процессора реально использует 1С:Предприятие: файловый и клиент-серверный режимы, фоновые задания, СУБД и рекомендации по выбору процессора.

Вопрос «сколько ядер использует 1С» возникает при выборе сервера или рабочей станции, и однозначного числа на него нет. Платформа 1С:Предприятие — это не одна программа, а набор процессов: клиентское приложение, сервер приложений (rphost), агент сервера и, в клиент-серверном варианте, отдельная СУБД. Каждый из этих компонентов по-разному нагружает процессор, и итоговая потребность в ядрах зависит от режима работы, числа пользователей и характера операций.

Ключевой факт, который нужно понимать сразу: одиночная пользовательская операция в 1С (проведение документа, формирование отчёта) выполняется преимущественно в одном потоке и грузит одно ядро. Поэтому для скорости отклика конкретного пользователя важнее высокая тактовая частота и производительность ядра, чем их общее количество. Многоядерность окупается там, где много одновременных пользователей или параллельных фоновых задач.

Ниже разобрано, как распределяется нагрузка в файловом и клиент-серверном режимах, сколько ядер реально нужно под разные сценарии, какие настройки влияют на параллелизм и как проверить, упирается ли система в процессор.

Как 1С работает с процессором: базовая модель

Платформа 1С:Предприятие исторически ориентирована на однопоточное выполнение прикладного кода. Когда пользователь проводит документ или строит отчёт, вся бизнес-логика этой операции исполняется последовательно в рамках одного соединения. Ускорить такую операцию добавлением ядер нельзя — поможет только более быстрое ядро или оптимизация кода и запросов.

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

Отдельный источник параллельной нагрузки — СУБД. Microsoft SQL Server и PostgreSQL умеют выполнять тяжёлые запросы с параллельными планами, задействуя несколько ядер на один запрос. В клиент-серверной архитектуре именно СУБД часто становится главным потребителем процессорных ресурсов.

Файловый режим: сколько ядер достаточно

В файловом режиме вся работа выполняется процессом клиентского приложения на компьютере пользователя (или на терминальном сервере). Здесь нет отдельного сервера приложений, и нагрузка на одну машину создаётся одним пользователем, либо несколькими — если это терминальный сервер с несколькими сеансами.

Для одиночной рабочей станции с файловой базой достаточно современного процессора с 4–6 ядрами и высокой тактовой частотой. Больше ядер не ускорит проведение документов и отчёты, потому что одна операция всё равно исполняется одним потоком. Куда заметнее на скорость влияют быстрый SSD и достаточный объём оперативной памяти.

Если файловая база лежит на сетевом диске и с ней работают несколько человек, узким местом обычно становится сеть и дисковая подсистема, а не процессор. Добавление ядер в этой ситуации почти ничего не даст — сначала нужно устранять сетевые задержки или переводить базу в клиент-серверный режим.

Клиент-серверный режим: нагрузка на сервер 1С и СУБД

В клиент-серверном варианте процессорная нагрузка делится между сервером 1С (процессы rphost) и сервером СУБД. Типичная картина: rphost расходует процессор на исполнение кода конфигурации, а СУБД — на выполнение запросов, построение индексов и обслуживание транзакций. Если оба компонента стоят на одной машине, они конкурируют за ядра.

Количество одновременно занятых ядер примерно соответствует числу активных в данный момент операций. Если из 50 пользователей одновременно что-то интенсивно делают 5–8 человек, серверу хватит 8–12 ядер. Если же регулярно запускаются тяжёлые сводные отчёты, обмены и регламентные задания в часы пик, потребность растёт до 16 ядер и выше.

Важно учитывать лицензионную составляющую: лицензии на сервер 1С и на СУБД (особенно MS SQL Server, который лицензируется по ядрам) напрямую зависят от количества задействованных ядер. Неоправданное наращивание ядер может существенно увеличить стоимость владения без пропорционального прироста производительности.

Фоновые задания и параллельные механизмы платформы

Фоновые и регламентные задания — естественный способ утилизировать несколько ядер. Каждое фоновое задание выполняется в отдельном сеансе и может занять своё ядро. Если в базе настроены обмены с другими системами, пересчёт итогов, загрузка данных по расписанию, каждый такой процесс добавляет параллельную нагрузку.

В платформе есть и встроенные механизмы распараллеливания: например, при проведении документов по регистрам с включённым режимом разделения итогов, при многопоточной загрузке данных в некоторых типовых механизмах обмена, а также при параллельном выполнении запросов на стороне СУБД. Однако прикладной разработчик не может произвольно «распараллелить» любой код — возможности многопоточности в языке 1С ограничены фоновыми заданиями.

Практический вывод: если регламентные задания мешают пользователям днём, имеет смысл не добавлять ядра, а переносить тяжёлые задания на ночное время или выделять под них отдельный рабочий сервер в кластере. Это дешевле и управляемее, чем наращивание процессорных ресурсов.

Как определить, что базе не хватает ядер

Главный признак процессорного узкого места — устойчивая загрузка CPU близкая к 90–100% в часы пик при одновременном росте времени отклика. Важно смотреть не только общую загрузку, но и распределение по ядрам: если одно ядро загружено на 100%, а остальные простаивают, проблема не в количестве ядер, а в однопоточной тяжёлой операции — её нужно оптимизировать, а не «закидывать железом».

Для диагностики используйте диспетчер задач или Performance Monitor в Windows, top и htop в Linux, а также технологический журнал 1С и консоль кластера — они покажут, какие процессы и вызовы создают нагрузку. Для СУБД полезны данные по ожиданиям: высокие ожидания типа CXPACKET в MS SQL Server указывают на активный параллелизм запросов.

Контрольные точки

Как проверить результат

Загрузка CPU в часы пик
Норма

Стабильно ниже 70–80% при приемлемом времени отклика

Тревожный признак

Устойчиво выше 90%, операции замедляются

Распределение по ядрам
Норма

Нагрузка размазана по большинству ядер

Тревожный признак

Одно ядро на 100%, остальные простаивают — узкое место в однопоточном коде

Длительность типовых операций
Норма

Проведение документов и отчёты укладываются в привычное время

Тревожный признак

Время растёт пропорционально числу пользователей

Практические рекомендации по выбору процессора

При выборе процессора под 1С действует простое правило приоритетов: сначала частота и производительность одного ядра, затем количество ядер под пиковое число параллельных операций, затем — объём памяти и быстрые диски. Серверные процессоры с большим числом медленных ядер часто проигрывают менее ядерным, но более высокочастотным моделям на типовых задачах 1С.

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

Сравнение вариантов

4–6 ядер, высокая частота

Одиночная рабочая станция или файловая база на несколько пользователей. Ограничение: не подходит для клиент-серверного режима с десятками пользователей.

8–16 ядер

Клиент-серверная база на 20–60 пользователей, сервер 1С и СУБД на одной машине. Ограничение: нужен контроль лицензий СУБД по ядрам.

16+ ядер, разнесение ролей

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

Для виртуальных сред есть дополнительный нюанс: выделяйте виртуальной машине столько vCPU, сколько реально нужно, а не «с запасом». Избыточные виртуальные ядра ухудшают планирование ресурсов гипервизором (эффект co-stop) и могут снизить, а не повысить производительность.

Порядок действий при нехватке производительности
  1. 1
    Зафиксируйте симптомы: какие операции тормозят и в какое время суток.
  2. 2
    Снимите показания загрузки CPU по ядрам и по процессам (rphost, sqlservr/postgres).
  3. 3
    Определите тип узкого места: однопоточная операция или нехватка ядер под параллельную нагрузку.
  4. 4
    При однопоточной проблеме оптимизируйте код и запросы; при нехватке ядер добавляйте ресурсы или переносите фоновые задания.
  5. 5
    После изменений повторите замеры в те же часы пик и сравните время типовых операций.

Типичные ошибки и ограничения

Самая распространённая ошибка — покупка многоядерного сервера для ускорения конкретного медленного отчёта. Если отчёт выполняется одним потоком, 32 ядра вместо 8 не помогут совершенно: ускорение даст только оптимизация запроса, индексов или перенос части логики на СУБД.

Вторая ошибка — размещение сервера 1С и СУБД на одной машине без ограничения ресурсов. СУБД под нагрузкой может занять почти все ядра, оставив rphost без процессорного времени. В таких конфигурациях стоит ограничивать max degree of parallelism и max server memory у SQL Server, либо разносить роли по разным машинам.

Типичные ошибки
01
Покупка многоядерного CPU для ускорения одной тяжёлой операции — она выполняется одним потоком и не ускорится.
02
Выделение виртуальной машине избыточных vCPU — планировщик гипервизора работает хуже, производительность падает.
03
Игнорирование лицензирования СУБД по ядрам — добавление ядер приводит к нарушению лицензионных условий.
04
Запуск всех регламентных заданий в рабочее время — фоновая нагрузка конкурирует с пользователями за ядра.
Итог

Что важно запомнить

1С выполняет одну пользовательскую операцию в основном одним потоком, поэтому для отклика важна частота ядра, а для масштабирования — число ядер под параллельные сеансы и фоновые задания. Типовой диапазон — от 4–8 ядер для небольших баз до 16 и более для крупных внедрений. Реальную потребность определяйте мониторингом загрузки по ядрам в часы пик.

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

Ускорит ли 1С переход с 4 ядер на 8?

Только если одновременно работает несколько пользователей или фоновых заданий и текущие 4 ядра загружены под завязку. Для одного пользователя прироста почти не будет — важнее частота процессора и быстрый SSD.

Сколько ядер нужно на 50 пользователей 1С?

Ориентировочно 8–16 ядер на сервер 1С плюс ресурсы под СУБД, если она на той же машине. Точное число зависит от интенсивности работы: учётные операции требуют меньше ресурсов, чем постоянные тяжёлые отчёты и обмены. Решение принимайте по данным мониторинга в часы пик.

Умеет ли 1С выполнять один запрос на нескольких ядрах?

Сам прикладной код — нет, он исполняется одним потоком. Но запросы к СУБД могут выполняться параллельно: MS SQL Server и PostgreSQL способны задействовать несколько ядер для одного тяжёлого запроса, что частично компенсирует однопоточность платформы.

Что важнее для сервера 1С: частота или количество ядер?

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

Почему одно ядро загружено на 100%, а остальные простаивают?

Это признак однопоточной тяжёлой операции: какой-то сеанс выполняет ресурсоёмкий код или запрос. Добавление ядер не поможет — нужно найти конкретный сеанс в консоли кластера или технологическом журнале и оптимизировать операцию.

Влияет ли число ядер на лицензии 1С?

Клиентские и серверные лицензии 1С не привязаны к количеству ядер напрямую. А вот СУБД может лицензироваться по ядрам: например, MS SQL Server требует лицензий на все ядра, доступные серверу, включая виртуальные.