Процессор для сервера 1С с MS SQL: на что смотреть перед покупкой
Содержание
Для сервера 1С с MS SQL выбирайте процессор с максимальной частотой одного ядра под нагрузкой, а число ядер подбирайте под количество одновременно работающих пользователей. Проведение документа, закрытие месяца и тяжёлый отчёт выполняются в основном одним потоком, поэтому 16 быстрых ядер почти всегда дадут больше, чем 64 медленных.
Типичная жалоба после покупки «мощного» сервера звучит так: ядер стало втрое больше, а закрытие месяца идёт так же долго или дольше. Причина — старый офисный процессор на 4,5 ГГц заменили серверным на 2,1 ГГц. Разберём, как не попасть в эту ловушку и как проверить кандидата до оплаты.
Как 1С и SQL Server используют процессор
В клиент-серверном варианте нагрузку несут два участника. Сервер 1С выполняет бизнес-логику в рабочих процессах rphost. СУБД (MS SQL Server или PostgreSQL) хранит данные и выполняет запросы.
Ключевая особенность 1С: один серверный вызов пользователя выполняется в одном потоке. Если бухгалтер проводит документ на 300 строк, все расчёты внутри проведения идут последовательно на одном ядре. Другие ядра в это время обслуживают других пользователей, но ускорить именно этот документ не могут.
У SQL Server картина другая:
- 🔹 он умеет распараллеливать один тяжёлый запрос на несколько ядер;
- 🔹 для баз 1С параллелизм обычно ограничивают: параметр
max degree of parallelismставят в 1, такую настройку рекомендуют для 1С на MS SQL; - 🔹 при
MAXDOP = 1каждый запрос тоже работает в одном потоке, и решает опять частота.
Отсюда простая модель нагрузки:
| Что происходит | Чем ограничено | Что важнее в процессоре |
|---|---|---|
| Проведение документа, перепроведение | Один поток rphost + запросы к СУБД | Частота ядра, кэш |
| Закрытие месяца, расчёт себестоимости | Длинная цепочка операций в одном сеансе | Частота ядра |
| 50 пользователей одновременно вводят документы | Много независимых сеансов | Число ядер |
| Регламентные задания, обмены, фоновые задания | Параллельные фоновые сеансы | Число ядер |
| Обслуживание индексов, резервное копирование | СУБД, диск | Ядра, дисковая подсистема |
Процессор — не единственное узкое место. Если база не помещается в оперативную память SQL Server, а данные лежат на медленных дисках, быстрый CPU будет простаивать в ожидании ввода-вывода. Перед покупкой проверьте, что упираетесь именно в процессор: загрузка ядер у rphost и sqlservr.exe высокая, а очередь к диску небольшая.
Частота или ядра: что важнее для 1С на SQL
Ответ: сначала частота, потом ядра. Но частоту нужно смотреть правильно.
В спецификации процессора есть две цифры: базовая частота и максимальная турбочастота. Турбочастоту процессор держит, пока нагружены одно-два ядра. Когда под нагрузкой все ядра, реальная частота опускается — у многоядерных серверных моделей иногда почти до базовой. Для 1С важна частота, которую процессор держит под реальной нагрузкой, а не цифра «до 5 ГГц» на коробке.
На что смотреть в спецификации:
- ⚙️ Базовая частота. Для сервера 1С ориентир — от 3 ГГц и выше. Модели с базой 2,0–2,4 ГГц рассчитаны на облачные нагрузки с тысячами лёгких потоков.
- ⚙️ Турбочастота на все ядра (all-core turbo). Производители публикуют её не всегда, но в обзорах и тестах она есть.
- ⚙️ Объём кэша третьего уровня. Запросы 1С активно работают с памятью, большой кэш снижает задержки.
- ⚙️ Поколение архитектуры. Новое ядро на 3,5 ГГц обычно быстрее ядра пятилетней давности на 3,8 ГГц.
Сравнивайте процессоры одного поколения по частоте, а разных поколений — только по тестам. Цифра в гигагерцах между поколениями почти ничего не говорит.
Сколько ядер нужно, зависит от числа активных сеансов. Ориентиры ниже примерные: они получены из практики внедрений, а не из официальной методики, и сильно зависят от конфигурации и привычек пользователей.
| Активных пользователей | 1С и SQL на одном сервере | Комментарий |
|---|---|---|
| до 15 | 6–8 ядер | Хватит одного процессора с высокой частотой |
| 15–50 | 8–16 ядер | Частота по-прежнему важнее количества |
| 50–150 | 16–32 ядра | Стоит подумать о разносе 1С и SQL |
| свыше 150 | 32 ядра и больше | Отдельные серверы 1С и СУБД, расчёт по нагрузочному тесту |
Не покупайте ядра «на вырост» в ущерб частоте. Добавить ещё один сервер в кластер 1С проще, чем ускорить медленное ядро.
Intel или AMD для сервера 1С
Жёсткой привязки 1С к производителю нет: платформа и SQL Server одинаково работают на x86-64 процессорах Intel и AMD. Выбирать нужно конкретную модель, а не бренд.
Что важно знать про обе платформы:
AMD EPYC. В линейках EPYC есть модели с индексом F — это версии с повышенной частотой при умеренном числе ядер, их делают как раз под задачи, которые упираются в однопоточную скорость и лицензии на ядро. Для небольших серверов у AMD есть EPYC 4004/4005 на платформе AM5: по сути это настольная архитектура Ryzen с серверными функциями и поддержкой ECC-памяти.
Intel Xeon. В линейках Xeon есть модели, оптимизированные под частоту, а для небольших серверов — серия Xeon E с высокой частотой и малым числом ядер. Многоядерные Xeon с низкой базовой частотой для 1С подходят хуже, хотя отлично справляются с виртуализацией множества лёгких машин.
Сравнение по критериям, которые реально влияют на 1С:
| Критерий | На что смотреть | Почему это важно |
|---|---|---|
| Частота под нагрузкой | Турбо на все ядра | Скорость проведения и отчётов |
| Кэш L3 | Объём на ядро | Скорость работы запросов с памятью |
| Каналы памяти | Сколько каналов на сокет | Пропускная способность для SQL |
| Число сокетов | Один или два процессора | Два сокета — это NUMA и лишние задержки |
| Цена ядра в лицензиях | Число ядер × стоимость лицензии СУБД | Влияет на итоговый бюджет сильнее, чем цена CPU |
Про последнюю строку часто забывают. MS SQL Server лицензируется по ядрам: чем больше ядер, тем дороже лицензия. Поэтому процессор на 16 быстрых ядер нередко выходит дешевле в сумме, чем процессор на 32 медленных, даже если сам CPU стоит дороже.
У редакции SQL Server Standard есть ограничение на число используемых ядер (в зависимости от версии — 24 или 32 ядра) и на объём памяти под буферный пул. Ядра сверх лимита СУБД просто не задействует. Проверьте ограничения своей версии до покупки.
Если используете PostgreSQL, лицензий на ядра нет, но правило «частота важнее» остаётся в силе.
Серверный процессор или десктопный
Для маленькой фирмы на 5–10 пользователей соблазнительно поставить сервер 1С на мощный настольный компьютер с Core i9 или Ryzen 9. По однопоточной скорости такие процессоры часто обгоняют дорогие серверные модели. В тестах 1С они выглядят отлично.
Но у десктопной платформы есть ограничения, которые проявляются не в тестах, а в эксплуатации:
- ❌ Память без коррекции ошибок. Большинство настольных платформ не поддерживают ECC полноценно. Ошибка в памяти на сервере базы данных может повредить данные, и вы узнаете об этом поздно.
- ❌ Мало каналов памяти и линий PCIe. Две планки на канал, ограниченный максимум ОЗУ, мало места под NVMe-диски.
- ❌ Нет удалённого управления. На серверных платах есть контроллер BMC (IPMI): можно перезагрузить машину и увидеть экран, не приезжая в офис.
- ❌ Охлаждение и режим 24/7. Настольные системы рассчитаны на другой режим работы, турбочастота падает при перегреве.
Компромиссный вариант — «серверные» версии настольных архитектур: те же AMD EPYC 4004/4005 или Intel Xeon E. Они дают высокую частоту, поддерживают ECC и ставятся на серверные платы с удалённым управлением.
Процессор для 1С в виртуальной машине
Сегодня сервер 1С и SQL часто работают на виртуальных машинах. Правила выбора процессора здесь те же, но добавляются свои ловушки.
vCPU — это не ядро. Один виртуальный процессор соответствует одному аппаратному потоку хоста. При включённом Hyper-Threading у физического ядра два потока, и два vCPU на одном ядре делят его ресурсы. Машина с 8 vCPU на загруженном хосте может работать медленнее, чем 4 настоящих ядра.
Что настроить, чтобы виртуальная машина с 1С не тормозила:
- Не давайте машине SQL больше vCPU, чем ядер у одного физического процессора хоста. Машина, растянутая на два сокета, получает задержки доступа к «чужой» памяти (NUMA).
- Избегайте сильной переподписки: суммарное число vCPU всех машин на хосте не должно многократно превышать число физических ядер, если машины нагружены одновременно.
- В VMware следите за метрикой CPU Ready: если машина долго ждёт свободного ядра, 1С тормозит при низкой загрузке внутри гостевой ОС.
- В Hyper-V не включайте без нужды режим совместимости процессоров для миграции: он скрывает часть инструкций от гостевой системы.
- Учитывайте лицензии: SQL Server в виртуальной машине лицензируется по числу vCPU, минимум 4 ядра на машину.
Не давайте машине «лишних» vCPU про запас. Гипервизору сложнее планировать большую машину, и прироста от неиспользуемых ядер не будет.
Схема энергопотребления
Частая и незаметная причина медленной 1С — энергосбережение. Процессор снижает частоту в простое и не успевает разогнаться на коротких запросах. Проверьте три места:
- 🔧 в BIOS/UEFI сервера — профиль производительности (Maximum Performance или аналог);
- 🔧 в Windows на хосте и в гостевой системе — схема электропитания «Высокая производительность»;
- 🔧 в настройках гипервизора — политика питания хоста.
Включить схему «Высокая производительность» в Windows можно командой от имени администратора:
powercfg /setactive SCHEME_MIN
SCHEME_MIN — встроенный псевдоним схемы с минимальным энергосбережением. Текущую схему покажет powercfg /getactivescheme. Смена схемы не прерывает работу пользователей, перезагрузка не нужна. А вот изменение настроек BIOS требует перезагрузки сервера — делайте это в нерабочее время, предупредив пользователей: все сеансы 1С оборвутся.
Как протестировать процессор перед покупкой
Цифры из спецификаций и чужих обзоров дают только направление. Окончательное решение принимайте по тестам на вашей нагрузке.
Тест Гилёва
Самый известный инструмент среди 1С-администраторов — тест Гилёва (TPC-1C-GILV). Это конфигурация 1С, которая выполняет типичные операции и выдаёт результат в условных единицах. Однопоточный режим показывает, насколько быстро процессор и связка с СУБД выполняют операции одного пользователя. Многопользовательский режим помогает понять, как сервер ведёт себя под параллельной нагрузкой.
Как использовать тест с пользой:
- Запустите тест на текущем сервере и запишите результат — это точка отсчёта.
- Попросите поставщика или облачного провайдера дать тестовый стенд с нужным процессором.
- Установите на стенд ту же версию платформы и СУБД, запустите тест в той же конфигурации (клиент-сервер, та же СУБД).
- Сравните результаты. Разница в 1,5–2 раза в однопоточном режиме вы почувствуете на проведении документов.
Тест чувствителен к энергосбережению. Если результат неожиданно низкий, сначала проверьте схему питания и профиль BIOS, а уже потом делайте выводы о процессоре.
Проверка на своей базе
Синтетический тест не заменяет реальную работу. Перед переходом стоит:
- 📋 развернуть копию рабочей базы на тестовом стенде;
- 📋 замерить время самых тяжёлых операций: закрытие месяца, перепроведение за период, формирование крупного отчёта;
- 📋 сравнить с тем же замером на текущем сервере.
Для крупных внедрений есть нагрузочное тестирование через «1С:Тест-центр» из состава «1С:Корпоративный инструментальный пакет». Он имитирует работу десятков и сотен пользователей по сценариям и показывает, где сервер упрётся в предел.
Проверка текущего сервера
Прежде чем менять процессор, убедитесь, что он узкое место. В Windows откройте «Монитор ресурсов» или «Системный монитор» (perfmon) и посмотрите в часы пик:
| Счётчик | Тревожный признак |
|---|---|
% Processor Time (общий) | Стабильно выше 80% |
Processor Queue Length | Долго больше 2 на каждое ядро |
| Загрузка отдельного ядра | Одно ядро на 100% во время тяжёлой операции |
Очередь диска (Avg. Disk Queue Length) | Высокая — проблема скорее в дисках, а не в CPU |
Если одно ядро загружено полностью, а остальные простаивают, помогут только более быстрые ядра. Если загружены все ядра — нужно больше ядер или разнос 1С и СУБД по разным серверам.