Обсуждение: PostgreSQL 12-1C проведение документов в ~3 раза медленнее на Linux
Доброго дня всем.
Есть тестовый стенд с Hyper-V 2019 (2xIntel E5-2650v2, 256GB RAM, Intel SSDs in RAID):
* Одна VM с сервером 1C
* Две VM c PostgreSQL c идентичными базами (~56Gb, Бухгалтерия 3.0):
1. CentOS 7 c postgresql_12.6_6.1C_x86_64 (интеграция стоит
2. Windows Server 2019 с тем же postgresql_12.6_6.1C_x86_64
Для теста провожу 10 одних и тех же документах в каждой базе 1C/PostgreSQL. Базы идентичны и прямо перед тестом загружаются из ДТ.
На Windows Server проводится за 20 - 30 seconds, на Linux занимает 1м - 1м10с. Виртуалки PostgreSQL крутятся на одном и том же гипервизоре с одинаковыми ресурсами (16 vCPU, 90Гб, места с запасом).
Тюнинг конфига PostgreSQL и/или CentOS результата не дает. На Windows напротив – вижу почти в 3 раза лучшую производительность на дефолтном конфиге.
Что может быть не так?
--
Тарас Савчук
Доброго дня всем.Есть тестовый стенд с Hyper-V 2019 (2xIntel E5-2650v2, 256GB RAM, Intel SSDs in RAID):* Одна VM с сервером 1C* Две VM c PostgreSQL c идентичными базами (~56Gb, Бухгалтерия 3.0):1. CentOS 7 c postgresql_12.6_6.1C_x86_64 (интеграция стоит2. Windows Server 2019 с тем же postgresql_12.6_6.1C_x86_64Для теста провожу 10 одних и тех же документах в каждой базе 1C/PostgreSQL. Базы идентичны и прямо перед тестом загружаются из ДТ.На Windows Server проводится за 20 - 30 seconds, на Linux занимает 1м - 1м10с. Виртуалки PostgreSQL крутятся на одном и том же гипервизоре с одинаковыми ресурсами (16 vCPU, 90Гб, места с запасом).Тюнинг конфига PostgreSQL и/или CentOS результата не дает. На Windows напротив – вижу почти в 3 раза лучшую производительность на дефолтном конфиге.Что может быть не так?--Тарас Савчук
Привет > я бы начал с теста на баред-метал инсталяции Win и linux, чтобы сразу исключить путь до диска в VM и особености обработкисистемных вызовов ядра ОС в виртуальной машине. Сейчас у вас "путь" до процессора, RAM, диска и сети по сути непредсказуеми известен только коду гипервизора. Поддержу. Я бы сходу даже предложил гипотезу, что для своей родной системы MS автоматически включает паравиртуальный режим и соответственновыкидывает существенную часть эмуляции железа. А вот для generic виртуалок это весьма вероятно нужно включатьявно где-то в настройках. regards, Sergei
> Привет > > > я бы начал с теста на баред-метал инсталяции Win и linux, чтобы сразу > исключить путь до диска в VM и особености обработки системных > вызовов ядра ОС в виртуальной машине. Сейчас у вас "путь" до > процессора, RAM, диска и сети по сути непредсказуем и известен только > коду гипервизора. > > Поддержу. > Я бы сходу даже предложил гипотезу, что для своей родной системы MS > автоматически включает паравиртуальный режим и соответственно > выкидывает существенную часть эмуляции железа. А вот для generic > виртуалок это весьма вероятно нужно включать явно где-то в > настройках. Железное железо под тест быстро организовать - это, конечно, проблема сейчас ) А вариантов кроме "гипервизор виноват" невидно. Попробую на KVM ту же базу посмотреть, такой вариант есть под рукой. Пока прогнал тест сети (iperf): win-win на40% быстрее win-linux (5,97Gbps vs 3,6Gbps). 40% там, 30% там - так может и набраться на 2 раза. -- Тарас
> Привет > > > я бы начал с теста на баред-метал инсталяции Win и linux, чтобы сразу > исключить путь до диска в VM и особености обработки системных > вызовов ядра ОС в виртуальной машине. Сейчас у вас "путь" до > процессора, RAM, диска и сети по сути непредсказуем и известен только > коду гипервизора. > > Поддержу. > Я бы сходу даже предложил гипотезу, что для своей родной системы MS > автоматически включает паравиртуальный режим и соответственно > выкидывает существенную часть эмуляции железа. А вот для generic > виртуалок это весьма вероятно нужно включать явно где-то в > настройках. > > regards, Sergei А какую из вашего опыта стоит ожидать разницу виртуализация vs железо на том самом оборудовании? Десятки процентов или всеже разы?
> Привет>> > я бы начал с теста на баред-метал инсталяции Win и linux, чтобы сразу> исключить путь до диска в VM и особености обработки системных> вызовов ядра ОС в виртуальной машине. Сейчас у вас "путь" до> процессора, RAM, диска и сети по сути непредсказуем и известен только> коду гипервизора.>> Поддержу.> Я бы сходу даже предложил гипотезу, что для своей родной системы MS> автоматически включает паравиртуальный режим и соответственно> выкидывает существенную часть эмуляции железа. А вот для generic> виртуалок это весьма вероятно нужно включать явно где-то в> настройках.>> regards, SergeiА какую из вашего опыта стоит ожидать разницу виртуализация vs железо на том самом оборудовании? Десятки процентов или все же разы?
привет > А какую из вашего опыта стоит ожидать разницу виртуализация vs железо на том самом оборудовании? Десятки процентов иливсе же разы? На внятных дисках - а intel делать SSD умеют и весьма хорошо - запросто в разы разница бывает на IO. Довольно много вещейвсё ещё не рассчитано на хорошие быстрые диски. Взять даже аппаратные raid-контроллеры - без аккуратного чтения документациик нему можно легко просесть в 2 раза по IO относительно глупого HBA с программным рейдом. Что уж говорить о виртуализации?Эмуляция периферии никогда не была быстрой. А у вас я всё так же предполагаю причину именно в разнице эмуляциипериферии для одного гостя и паравиртуализации в другом госте. regards, Sergei