Назад | Перейти на главную страницу

Проблемы с производительностью Joomla на AWS

Я запускаю сайт на AWS со следующей настройкой:

  1. Один экземпляр m1.small (веб-сервер)
  2. Один RDS m1.small db
  3. Joomla 1.5

Как правило, сайт эффективен, но посещаемость у него довольно низкая - скажем, около 50-100 посещений в час. Однако в часы пик мы видим примерно вдвое больше трафика. В пиковое время почти каждый день:

  1. Использование ЦП на веб-сервере медленно поднимается до 100%
  2. Использование ЦП на сервере RDS довольно быстро увеличивается примерно до 30%, в среднем с 15
  3. Число подключений к базе данных увеличивается примерно до 140 по сравнению с нормальным средним значением около 2 или 3.

В этом случае сайт иногда становится недоступным, что, безусловно, следует из мониторинга pingdom.

Кто-нибудь узнает такое поведение? Можете ли вы указать мне правильное направление, чтобы начать расследование? Конечно, RDS затрудняет выполнение таких вещей, как медленное ведение журнала запросов, поэтому я начал с регулярного сброса списка процессов mysql в файл, чтобы посмотреть, есть ли что-нибудь, что я могу там найти, но было бы хорошо иметь что-то более конкретное. исследовать.

ОБНОВИТЬ

По крайней мере, может ли кто-нибудь подтвердить, что я определенно прав, говоря, что уровень трафика подразумевает, что проблема должна быть определенным типом запроса путь дольше, чем должно выполняться? Это произойдет, если таблица заблокируется, и в нее нужно будет писать много запросов, верно? По этой причине я уже изменил тип таблицы __session на InnoDB.

Вместо того, чтобы сбрасывать запросы, вы можете включить медленное ведение журнала запросов с использованием групп параметров БД RDS. RDS сохраняет медленные запросы в таблице mysql.slow_log. Вот полезный нить.

Чтобы повысить производительность, используйте какой-нибудь механизм кеширования, такой как плагин Joomla System Cache.

С MySQL может и не быть проблем. Вам также необходимо учитывать другие вещи, такие как размер изображений и количество изображений, обслуживаемых веб-сервером, производительность расширений, используемых с Joomla.

Я не думаю, что это проблема MySQL. Вы описываете то, что я испытал на веб-сайтах Joomla, когда выделения памяти для экземпляра (фрагмента) недостаточно. Я предлагаю увеличить объем памяти, а затем отслеживать результаты для улучшения.

Если вы все еще думаете, что это проблема MySQL, я бы создал фиктивное приложение с использованием MySQL и провел на нем нагрузочное тестирование.