Задать вопрос

Работа PostgreSQL на процессорах с гетерогенной архитектурой под Windows?

Имеется "сервер" на базе Intel i7-13700 (8p+8E), работает под управлением Windows Server 2019.
Развернута полусамописная CRM для управления товарами и ценами, использующая БД PostgreSQL (18.1).
Нагрузка в основном OLTP (обновление цен, импорт прайс-листов, генерация фидов).
postgresql.conf настроен с учётом параметров ЦП и ОЗУ.
Какая конфигурация будет оптимальной:
1. Сток
2. Отключены E-ядра, но включен HT
3. Отключён HT на P-ядрах, но включены E-ядра
  • Вопрос задан
  • 446 просмотров
Подписаться 2 Средний 5 комментариев
Помогут разобраться в теме Все курсы
  • Merion Academy
    Администрирование MS Windows Server
    1 месяц
    Далее
  • Нетология
    Инженер по автоматизации
    13 месяцев
    Далее
  • Skillbox
    Системный администратор с нуля
    6 месяцев
    Далее
Решения вопроса 2
mayton2019
@mayton2019
Bigdata Engineer
Определенно здесь Windows является лишним звеном. Непонятно зачем вы тратили лишнюю лицензию.

По поводу включения и выключения HT. Я думаю что никто не ответит на ваш вопрос. Потому что нет такой теории которая бы объясняла OLTP нагрузку в сочетании с таким сложным стеком технологий.

Поэтому найдите метрику, на которую нужно смотреть. Пускай это будет среднее время отклика для OLTP query с точки зрения конечного потребителя. Или даже лучше не среднее время а квартиль или процентиль.

И проведите 2-3 эксперимента. А уже после того как будут цифры - можно искать теоретическое объяснения.
Ответ написан
Комментировать
@lxnvr Автор вопроса
В целом: только на P-ядрах быстрее. Сравнивал как по логам CRM, так и через pg_stats.
В итоге - перенастроил postgresql.conf под количество p-ядер.
E-ядра оставил активными, но все процессы CRM и postgres повесил на p-ядра с помощью process lasso.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
sergey-gornostaev
@sergey-gornostaev Куратор тега PostgreSQL
Седой и строгий
Обычно это делается так: Запускаешь на конфигурации из коробки, некоторое время наблюдаешь, и если замечаешь нехватку производительности, то
  1. Включаешь логирование медленных запросов;
  2. Анализируешь их планы выполнения;
  3. Подкручиваешь настройки в соответствии с наблюдениями;
  4. PROFIT.
Ответ написан
Комментировать
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Если есть задачи, которые выполняются долго (десятки секунд) и упираются в одно ядро - разумеется, лучше сделать меньшее количество более производительных ядер.

Но учитывая, что у вас "сервер" на винде - сомнительно, что мы имеет дело с хайлоадом, требующим столь глубокой оптимизации.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы