Amazon EC2 Bitnami Wordpress чрезвычайно медленный

Я столкнулся с несколькими проблемами с Amazon EC2 и Bitnami Wordpress AMI (RedHat) на небольшом экземпляре ... и, честно говоря, я не знаю, у кого спросить :) Я не эксперт по системным администраторам / Linux, но я изучил основы SSH команды и другие вещи, необходимые для базового старта.

Итак, вот что происходит:

Веб-сайт Wordpress загружается очень медленно - оценка PageSpeed ​​и YSlow составляет 27 из 100. Я думаю, это вызвано memory_limit в php.ini. Когда я установил Bitnami Wordpress AMI, импортировал пользователей WP, установил тему и другие базовые вещи, я не смог даже получить доступ к веб-сайту Wordpress - появилась просто пустая страница. После нескольких решений я попытался увеличить php.ini memory_limit с 32 МБ до 128 МБ (макс.). И я увеличил лимит памяти WP до 64 МБ.

Веб-сайт загружался правильно, и пользователи могли получить к нему доступ, но это очень медленно. Когда я пытаюсь уменьшить лимит памяти php.ini до 64 МБ, веб-сайт снова показывает пустую страницу.

Единственное, о чем я могу думать в настоящее время, - это увеличить экземпляр EC2 с .small до .large или аналогичного. Пожалуйста, дайте мне знать, что вы думаете по этому поводу ... и большое спасибо!


person MVMojo    schedule 02.07.2012    source источник
comment
Один приятель переключился с EC2, когда у него была задержка 500 мс между веб-сервером и сервером базы данных. Вы наблюдаете похожие задержки?   -  person sarnold    schedule 03.07.2012
comment
Ввод-вывод в EC2 может быть очень медленным. Это может убить MySQL (я полагаю, это ваше хранилище?). Убедитесь, что вы также выделили достаточно памяти для MySQL. Если вы еще этого не сделали, используйте экземпляр с поддержкой EBS и храните данные (не ОС) в разделе программного RAID (например, 8 экземпляров EBS с чередованием). См. stackoverflow.com/questions/3630506/   -  person Eric J.    schedule 03.07.2012
comment
@EricJ. Я не думаю, что чередование томов EBS было бы хорошим улучшением производительности. EBS использует сетевой ввод-вывод, поэтому даже если вы чередуете 8 томов EBS, у вас все равно будет единый сетевой интерфейс, через который должен проходить весь этот трафик. Чередование RAID помогает преодолеть узкое место, связанное со скоростью диска, но не поможет, когда узким местом является сеть, как в случае с EBS.   -  person nickgroenke    schedule 03.07.2012
comment
@ user1087981: Вы ошибаетесь :-) Вы увидите почти линейное улучшение производительности до 8 томов EBS на большом экземпляре (возможно, примерно до 4 на меньшем экземпляре из-за менее функциональной сетевой карты). Я лично тестировал 8 томов на большой.   -  person Eric J.    schedule 03.07.2012
comment
@ user1087981: См. также hightechinthehub.com/2012/ 02 /   -  person Eric J.    schedule 03.07.2012
comment
У меня была та же проблема, затем я создал эластичный IP-адрес и завершил настройку vhosts в httpd.conf и перенаправил реальное доменное имя, а затем переустановил wordpress, отредактировав файл конфигурации, изменив префикс таблицы и снова запустив установку. Это было бесполезно медленным, CSS даже не показывал, теперь быстрый, тот же микро-экземпляр AMI ненавидит выдавать его здесь, но subox.one   -  person Rich Bianco    schedule 15.08.2018


Ответы (4)


У нас была аналогичная проблема с приложением Php / MYSQL, которое мы переместили в экземпляр EC2, подключенный к экземпляру базы данных RDS. Страницы загружались в 10 раз дольше, чем на нашем предыдущем сервере, хотя все спецификации были одинаковыми, то есть количество процессоров, ОЗУ, тактовая частота и версии Php / Apache были идентичны.

Мы наконец нашли причину проблемы. По умолчанию для базы данных RDS размер запроса кэша равен 0. Это приводит к очень медленной работе базы данных. Мы изменили query_cache_size на 1000000000 (1 ГБ) (поскольку у экземпляра RDS было 4 ГБ ОЗУ), и сразу же производительность приложения стала такой же хорошей, как и у нашего предыдущего (не AWS). сервер.

Во-вторых, мы обнаружили, что сервер EC2 с MySQL, установленным локально на сервере, плохо работает в сборке Amazon Linux. Мы попробовали то же самое в инстнэйсе EC2 под управлением Ubuntu, и с локальной базой данных MySQL производительность была отличной.

Очевидно, из соображений масштабируемости мы использовали экземпляр RDS, но нам показалось интересным, что перенос базы данных MySQL на экземпляр EC2 радикально улучшил производительность для сервера EC2 Ubuntu linux, но не повлиял на Amazon Build of Linux.

person Peter    schedule 26.08.2014

Поскольку вы еще не получили ответа, позвольте мне обобщить мои комментарии во что-то, что, надеюсь, будет полезно:

Вот некоторые области, на которые вы можете повлиять:

  • PHP нуждается в оперативной памяти, но также и в вашей базе данных (я ничего не знаю о Bitnami, но Wordpress использует базу данных SQL для хранения).
  • Выделите достаточно оперативной памяти для PHP. Похоже, что это где-то между 64 МБ и 128 МБ.
  • Если вы используете MySQL, отредактируйте my.ini. Если вы используете файл конфигурации по умолчанию для MySQL, параметры выделения памяти набираются way слишком низко. Если вы опубликуете свой файл my.ini, я могу дать предложения (или, если вы используете другую базу данных, укажите, какие именно).
  • Рассмотрите возможность чередования нескольких томов EBS для вашего раздел данных.
  • Используйте экземпляр с поддержкой EBS, если вы еще этого не сделали.

Вы можете принять более обоснованное решение о том, где настраиваться, если у вас есть результаты профилирования.

person Eric J.    schedule 03.07.2012
comment
Большое спасибо за ваш полезный совет. Я обязательно попробую профилировать приложение и вернуться сюда по этому поводу. Не знаю, как это делается ... Я поищу. #Point 3 Мне не удалось найти файл my.ini, только my.cnf Вот файл my.cnf: [mysqld] datadir = / var / lib / mysql socket = / var / lib / mysql / mysql.sock user = mysql # Отключение символических ссылок рекомендуется для предотвращения различных рисков безопасности. symbolic-links = 0 [mysqld_safe] log-error = / var / log / mysqld.log pid-file = / var / run / mysqld / mysqld.pid Именно это . Никаких ссылок на какие-либо воспоминания или подобное :( - person MVMojo; 04.07.2012
comment
# Баллы 1 и 2 Да, я использую MySQL. Текущий установленный memory_limit равен 128M. #Point 4 Получилось, к сожалению, ничего не изменилось. Кстати, на данный момент у меня только один экземпляр. #Point 5 Да, я использую экземпляры с поддержкой EBS. Не уверен, что я могу сделать, если экземпляр выйдет из строя или что-то пойдет не так. Я понимаю, что EBS - лучшее решение для резервного копирования для EC2, но я покопаюсь, чтобы посмотреть, как это можно использовать на практике. - person MVMojo; 04.07.2012
comment
Некоторые версии MySQL используют my.cnf вместо my.ini. В Linux в подпапках иногда есть переопределения для my.cnf. См. Тему файла конфигурации MySQL здесь dev.mysql.com/doc /refman/5.1/en/option-files.html - person Eric J.; 04.07.2012

Я бы посоветовал использовать инструмент кеширования. Первое, что вы можете попробовать, - это APC (альтернативный кеш PHP). В Red Hat его легко установить: yum install php-pecl-apc. Вы можете получить гораздо лучшие результаты с помощью специального плагина кеширования WordPress, такого как W3 Total Cache или Super Cache. Я использую последний, и его легко установить в приложении WordPress:

  1. Установите Super Cache из панели администратора WordPress.
  2. Измените разрешения .htaccess: sudo chmod 666 /opt/bitnami/apps/wordpress/htdocs/.htaccess
  3. Включите плагин и следуйте инструкциям по настройке. Вы можете увидеть, как этот плагин изменяет файл .htaccess
  4. Настраивает параметры кеширования в соответствии с вашими предпочтениями и тестирует его. Вы можете проводить тесты производительности, используя такой сервис, как blitz.io
  5. Измените права доступа .htaccess на 600, когда все в порядке.

Я надеюсь, что это помогает.

person Beltran    schedule 03.07.2012

Мы видели нечто подобное. Для нас альтернативная стоимость нашего времени, связанного с настройками оптимизации, была намного выше, чем использование специального хостинг-провайдера Wordpress.

Лидерами в этой области (выделенный хостинг Wordpress) являются WP-Engine и некоторые другие, такие как Synthesis.

http://trends.builtwith.com/hosting/wordpress-hosting

У меня был свой личный сайт на Dreamhost, но с годами он становился все хуже и хуже, поэтому я перешел на bluehost, что было нормально.

В целом, я считаю, что EC2 - это здорово, но для этого нужно много возиться. В зависимости от стоимости вашего времени и области знаний вы можете выбрать более специализированного поставщика.

Я не связан ни с одной из этих компаний, кроме моего личного опыта работы в качестве отдельного клиента виртуального хостинга как на dreamhost, так и на bluehost.

person Miko Matsumura    schedule 02.01.2014