Вопрос звучит просто, а ответ на него регулярно обходится компаниям в лишние сотни тысяч рублей. Логика кажется железной: 1С тормозит, пользователей много, значит берём процессор помощнее - побольше ядер. Сервер приезжает, 1С работает ровно так же, а счёт за лицензии вырастает вдвое.
Разберёмся, от чего производительность 1С зависит на самом деле, как читать чужие тесты и почему ядра - это ещё и деньги.
Если коротко. Для 1С решает не количество ядер, а скорость одного ядра. Ориентируйтесь на высокую частоту и свежую архитектуру, а число ядер берите по количеству одновременных сеансов и фоновых заданий - с запасом, но без фанатизма. Каждое лишнее физическое ядро вы оплатите ещё раз в лицензии MS SQL и Windows Server.
Код на встроенном языке 1С исполняется последовательно. Когда пользователь проводит документ, пересчитывает итоги или формирует отчёт, эта работа не размазывается по всем ядрам сервера - она идёт в один поток. Сколько бы ядер ни стояло в сервере, конкретная операция конкретного пользователя выполняется на одном из них и упирается в его скорость.
Отсюда практическое следствие, которое ломает интуицию закупщика: процессор с 8 ядрами, работающий на 3,8 ГГц, проведёт документ быстрее, чем 64-ядерный на 2,2 ГГц. Не немного быстрее - заметно, потому что разница в частоте здесь работает почти линейно.
Ядра при этом нужны, просто отвечают они за другое. Частота определяет, как быстро выполняется одна операция. Количество ядер - сколько операций идёт одновременно, не мешая друг другу. Это две разные шкалы, и путать их дорого.
Частая ошибка. «Пользователей стало больше, значит нужно больше ядер». Больше пользователей - да, больше ядер. Но если жалуются на то, что «документ проводится минуту», ядра не помогут вообще: минуту занимает одна операция в одном потоке. Лечится частотой, индексами и настройками СУБД, а не наращиванием ядер.
Перегнуть палку в другую сторону тоже можно. Восьмиядерник на высокой частоте отлично держит небольшую базу и десяток пользователей, но разваливается там, где параллельной работы много.
Ядра начинают решать, когда на сервере:
Рабочий ориентир такой: сначала выбираем процессор по частоте, а потом внутри подходящих по частоте моделей берём тот, у которого ядер хватает под сценарий. Не наоборот.
В русскоязычном 1С-сообществе де-факто стандартом стал нагрузочный тест Гилева (TPC-1C). Результат он выдаёт в условных единицах, которые все называют «попугаями», и по ним принято сравнивать железо.
Устроен тест так: он нагружает один логический процессор и считает, сколько работы система успевает сделать за единицу времени в один поток. Именно поэтому он так хорошо предсказывает ощущения пользователя от 1С - и именно поэтому его результат почти не растёт от добавления ядер.
Это надо понимать буквально. Если вы прогоните тест на 64-ядерном сервере и получите цифру ниже, чем у коллеги на 8-ядерном, ошибки нет: у коллеги ядро быстрее.
Цифры из чужих замеров гуляют в разы, и виноват в этом обычно не процессор. Прежде чем сравнивать два результата, проверьте, совпадают ли условия.
Поэтому чужой результат годится как ориентир по порядку величины, но паспортной характеристикой процессора его считать нельзя. Полезнее сравнивать не абсолютные цифры из разных источников, а замеры, сделанные в одинаковых условиях. Шкала оценок и сам тест лежат на сайте автора, gilev.ru.
APDEX часто упоминают рядом с выбором железа, и это сбивает с толку. APDEX - не методика тестирования процессоров. Это индекс удовлетворённости от 0 до 1, который считается по порогу времени отклика T: операции быстрее T считаются комфортными, от T до 4T - терпимыми, медленнее 4T - неприемлемыми.
В 1С механизм APDEX встроен в платформу и работает по ключевым операциям вашей конкретной базы: вы сами задаёте, что считать быстрым проведением документа, а система копит статистику. Инструмент отличный, но для другой задачи - он показывает, где именно у вас болит, а не какой процессор купить.
Самый частый вопрос темы - и самый бесполезный в такой формулировке. «Intel лучше для 1С» и «AMD лучше для 1С» одинаково неверны: у обоих производителей есть и высокочастотные модели под базы данных, и многоядерные низкочастотные под виртуализацию. Сравнивать нужно не бренды, а конкретные характеристики.
| На что смотреть | Почему это важно для 1С | Чему отдать предпочтение |
|---|---|---|
| Базовая и турбо-частота | Прямо определяет скорость одной операции | Выше - лучше, это главный критерий |
| Производительность на |