Как ускорить 1С если у вас Масштабируемый процессор Intel Xeon с низкой базовой тактовой частотой

Предисловие или предпосылки к статье

В очередной раз ко мне обратился коллега из одного франчайзи 1С с просьбой развернуть Postgres + 1C двух разных версий на одном сервере. Сие ему было необходимо для безболезненного перевода некой компании «Х» с существующего в компании рабочей версии 1С на свежую. Так скажем есть новый боевой сервер, на котором нет ничего кроме Windows 2022 Standart и надо все вышеописанное на нем развернуть.

Я с радостью согласился так как в наше непростое время любая дополнительная денежка за счастье.

Уже по старой своей традиции я сразу зашел в свойства системы дабы изучить на чем собственно буду работать и ожидаемо расстроился.

О системеО системе

Как мы видим тактовая частота процессора оставляет желать лучшего. Так как 1С дюже любит 2 вещи: тактовую частоту в формате чем больше тем лучше (условные 3.0 ГГц как ориентир) и быстрые жесткие диски.

Тут сразу стало понятно, что не взлетим. Установленный 1С + Postgres и тест уважаемого тов. Гилева ожидаемо показал грусть и печаль.

Стартовый результатСтартовый результат

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

Собственно эта ситуация с точностью описана на сайте Гилева и сразу было указано «бутылочное горлышко» в виде процессора.

Конфигурация сервера как ее видит тест ГилеваКонфигурация сервера как ее видит тест Гилева

Естественно, заказчики возмутились и начались, так знакомые многим, качели. «Нет это не в железе проблемы», «это программный тест — значит и проблемы программные» ну и так далее. Для сравнения я отправил результат теста с одной из виртуалок Selectel.

Результат теста виртуалкиРезультат теста виртуалкиТТХ виртуального сервераТТХ виртуального сервера

Тут собственно нечего сравнивать. 32 ядра и 64 Гб оперативки на «железе» показывают 8 единиц, а 4 ядра и 16 Гб почти 30.

В моей картине мира — я свою работу выполнил — задача выполнена. Все развернуто. А то что оно не шаволится как говорится «от слова совсем», то не моя проблема. Но поскольку я достаточно легко представлял себя в такой же ситуации когда ты совершил ошибку и купил не то что нужно и теперь покусываешь локти. Дальше легко представляются ожидаемые проблемы с руководством о лишнепотраченных сотнях тысяч, а то и миллионах рублей и вообще профессиональная солидарность и желание помочь совсем незнакомым коллегам взяли верх и я полез копаться.

Для начала просто скопировал с одного диска на другой три мешка мелких файлов — сразу увидел скорость в районе 220 МБ/c плюс она еще и падала периодами до 30 Мб/с. Выяснилось что диски собраны в RAID 5. Ок. Парни, сделайте хотя бы RAID 1, а лучше RAID 10. Пересобрали — скорость копирования выросла в 8 раз до 1,5 ГБ/с — отлично, но тест Гилева стал показывать не 8 единиц, а 9. Что ситуацию в корне не улучшило.

Решение

В процессе подпрыгивания вокруг сервера в тщетной, как мне казалось, попытке заставить хоть как то работать с приемлемой скоростью — обратил внимание что сервер даже под нагрузкой теста в диспетчере задач — показывает тактовую частоту скачущей в вилке 0,9 ГГц -1,9 ГГц, а!, подумал я — энергоэффективность и прочие «зеленые» приколы. Включил максимальную производительность, но видимого эффекта оно не возымело. Ну ок. Нет, так нет. Надо править в BIOS. Поскольку физического доступа не было — решил как доп запрос отправить позже, когда появится хоть какое-то решение. Параллельно полез на сайт Intel посмотреть какие процессоры можно воткнуть в сокет сервера дабы улучшить ситуацию. Там взгляд зацепился за слово «Маштабируемый» или «Scalable» в описании «Масштабируемый процессор Intel® Xeon®». Далее мысль пошла в сторону того, а что именно в процессоре маштабировать то можно. Какое то время гугления привело меня на сайт https://en.wikichip.org/wiki/intel/xeon_silver/4216 где английским по белому была представлена табличка зависимости тактовой частоты от количества ядер

Информация о ядрах с сайта Wikichip.orgИнформация о ядрах с сайта Wikichip.org

Сразу оговорюсь — если вдруг это общеизвестный факт — то мои искренние извинения за потраченное читателем время.

Так вот далее родилось ТЗ для заказчика — в BIOS отключить все что связано с энергоэффективностью, отключить Hyper-Threading (что было в рекомендациях на сайте Гилева) ну и уменьшить количество ядер до 8 (что судя по табличке из интернетов, представленной выше, должно было дать 2,9 ГГц) Буду до конца честным — я в такую магию не особо верил -, но тут уже ситуация в формате — поможет — отлично, не поможет — сорян. Без нужной тактовой частоты вся эта конструкция никуда с 1С не полетит.

Результат меня порадовал и удивил.

Результат после уменьшения количества ядер до 8Результат после уменьшения количества ядер до 8b4d32f09f778e8f2fd4e5458040ad486.png

© Habrahabr.ru