У меня есть физический сервер Ubuntu (см. некоторые спецификации здесь) с установленными Apache 2.4.7, PHP 5.5.9, mysql 14.14, mysqlite и Yii framework 1.16. Сначала сервер работает потрясающе, но внезапно, при достаточной нагрузке, время ожидания истекает (80+ запросов в секунду). Ни один из системных ресурсов ни при каких условиях не может быть ограничен. ЦП только до 25%.
В журнале ошибок Apache я обнаружил следующее:
server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting
Должен ли я просто увеличить это число, как написано, или я устраняю только побочный эффект проблемы здесь?
Кроме того, я не полностью понимаю документацию. В разделе про MaxRequestWorkers это также связывает это вместе с настройкой ServerLimit, но я не совсем уверен, на что они должны быть настроены, чтобы правильно работать вместе.
Другие технические детали, которые могут быть полезны:
Apache также выдает следующее предупреждение, которое не вызывает сомнения, важно оно или нет:
apache2: не удалось надежно определить полное доменное имя сервера с использованием 127.0.1.1. Установите глобальную директиву ServerName для подавления этого сообщения
Это единственный сайт, установленный на сервере.
Вы попали на сервер MaxRequestWorkers
предел. Это означает, что когда у вас много запросов, большинство из них просто ждут, чтобы их обслужили, и во время этого ожидания истекает время ожидания PHP.
Поскольку у вас еще много ресурсов, вы можете смело увеличивать MaxRequestWorkers
. Также проверьте настройки тайм-аута PHP.
Если вы не сможете улучшить перфорацию (а ваш код может оказаться неэффективным), вам придется использовать оборудование.
Ни один из системных ресурсов ни при каких условиях не может быть ограничен. ЦП только до 25%.
Обычно с базой данных, которая является транзакционной, ЦП представляет собой наименьшую проблему. Проверьте свою нагрузку ввода-вывода - возможно, у вас просто недостаточно емкости ввода-вывода для обработки базы данных. ЦП - только один из трех критических ресурсов, два других - это ввод-вывод и память.