Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Предисловие или предпосылки к статье
В очередной раз ко мне обратился коллега из одного франчайзи 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 где английским по белому была представлена табличка зависимости тактовой частоты от количества ядер
Сразу оговорюсь - если вдруг это общеизвестный факт - то мои искренние извинения за потраченное читателем время.
Так вот далее родилось ТЗ для заказчика - в BIOS отключить все что связано с энергоэффективностью, отключить Hyper-Threading (что было в рекомендациях на сайте Гилева) ну и уменьшить количество ядер до 8 (что судя по табличке из интернетов, представленной выше, должно было дать 2,9 ГГц) Буду до конца честным - я в такую магию не особо верил - но тут уже ситуация в формате - поможет - отлично, не поможет - сорян. Без нужной тактовой частоты вся эта конструкция никуда с 1С не полетит.
Результат меня порадовал и удивил.