LEMP Nginx + php-fpm тайм-ауты при высокой нагрузке

Я довольно новичок во всем этом, но я OCD об оптимизации.

Я пытаюсь оптимизировать мой веб-сервер под управлением LEMP для WordPress.

Я использую WP HyperCache вместо W3 общего кеша, так как он выглядит феноменально по сравнению с моей настройкой

Я использую blitz.io для тестирования и выбрасывания 450 пользователей в домен на 60 секунд, начиная с полных 450.

Это мои результаты: Spike at 5 sec - ошибки и таймауты http://i.imgur.com/CdpBz.png

htop во время всплеска: http://i.imgur.com/OhEyS.png

Это vps w/ 2 процессор на 2,5 ГГц и 2,5 ГБ памяти, как вы можете видеть, использование памяти низкое.

nginx: worker_processes 1; рабочий_соединения 1024;

php-fpm: динамический, pm.max_children = 10, pm.start_servers = 2, pm.max_spare_servers = 2,;pm.max_requests = 500 значение по умолчанию = 0

Я увеличил nginx worker_processes до 2 без изменений, и я испортил свои настройки php-fpm без изменений. Любые идеи, на что я должен смотреть?

1 ответ

Это выглядит не так уж плохо. ~40 таймаутов из 19k запросов - это нормально. Я получил аналогичные результаты.

Что касается тюнинга:

  • загляните в http://wiki.nginx.org/HttpFastcgiModule - при этом вообще не затрагивается php, а nginx выполняет все операции кэширования. Вы также можете посмотреть на batcache (http://evansolomon.me/notes/faster-wordpress-multisite-nginx-batcache/)

  • посмотрите в apc / memcached для кеширования объектов. это делает не кэшированные запросы более быстрыми, а бэкэнд - более отзывчивым. APC также уменьшает объем памяти php. Для повседневного использования это имеет большее значение. Это также помогает, если многие ваши запросы не кэшируются (например, много новых комментариев).

  • рассмотрите использование php5.4, это намного быстрее и требует меньше памяти

  • включить кеш запросов mysql. http://mysqltuner.com/ - небольшой скрипт для настройки вашего сервера.

Измерение пиковых передач в большинстве случаев не является хорошим показателем масштабируемости. Реальные пользователи ведут себя, вероятно, иначе.

edit: попробуйте blitz.io на статической странице nginx. Если тайм-ауты все еще существуют, проблема, вероятно, в blitz.io или где-то еще. Также активируйте сжатие GZIP для ваших страниц.

Другие вопросы по тегам