Намного ниже производительность MySQL на виртуализированном сервере

0

Я занимаюсь виртуализацией и обновлением старого Linux-сервера, на котором работает система отчетности, разработанная в доме (Apache, MySQL, PHP).

На старом физическом сервере работает 64-разрядный Ubuntu 10.04.3 LTS, MySQL 5.1.41 и PHP 5.3. Сервер имеет процессор Intel Xeon X3460 @2,80 ГГц (4 ядра), 4 ГБ оперативной памяти.

У нас ESXI 5.5 работает на HP DL380G6 с 2 x Intel Xeon X5650 6 Core 2.66ghz и 32GB RAM.

Я создал новую виртуальную машину с 4 ядрами и 4 ГБ оперативной памяти и выполнил чистую установку 64-разрядных Ubuntu 16.04.4 LTS, MySQL 5.7.21 и PHP 7.0, перенесших наше приложение, и все работает намного медленнее. Я считаю, что это MySQL, потому что при выполнении того же прямого запроса на старом физическом сервере и новом виртуализированном запросе может потребоваться 8 секунд (VM) вместо 1 (физическое). Все таблицы имеют соответствующие индексы, при этом на каждом сервере выполняется "EXPLAIN", что дает те же результаты, но один из них существенно медленнее. Когда на странице запущены многочисленные сложные запросы, для загрузки может потребоваться minute+ вместо нескольких секунд.

Любая идея, почему это может быть? Тот же набор данных, тот же запрос, тот же движок (MyISAM). VM имеет гораздо более свежие версии всего, одинаковое количество ядер и одну RAM. Я даже пытался удвоить процессор VM до 2 сокетов, 4 ядер и 8 ГБ оперативной памяти, и это, похоже, не оказывает существенного влияния.

Я сравнил конфигурацию MySQL, и ничто не выпрыгивает из меня, когда меня очень разные.

Что мне здесь не хватает? Это виртуальное хост-оборудование?

  • 0
    «Я верю, что это MySQL» Правильно ли вы настроили MySQL?
  • 0
    Да, я верю в это. Как я уже сказал, я сравнил конфигурационные файлы, и между ними нет ничего необычного. Хотя это разные версии Ubuntu и MySQL, поэтому я предположил, что всегда есть шанс что-то упустить в новых версиях.
Теги:
esxi
vsphere

1 ответ

0

Вы обновили инструменты vmware? если этого не сделать. Затем, на этом хосте ESXi, есть ли у вас другие виртуальные машины? Если да, я бы посоветовал вам создать пул ресурсов, а затем настроить ограничения ресурсов. В пуле ресурсов объем ресурса, который вы назначили, будет зарезервирован для вашей виртуальной машины, поэтому вам не придется делиться с другими виртуальными машинами.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню