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

Выделенный сервер останавливается со скоростью 80 запросов / с - причина в MaxRequestWorkers?

У меня есть физический сервер 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, но я не совсем уверен, на что они должны быть настроены, чтобы правильно работать вместе.

Другие технические детали, которые могут быть полезны:

Вы попали на сервер MaxRequestWorkers предел. Это означает, что когда у вас много запросов, большинство из них просто ждут, чтобы их обслужили, и во время этого ожидания истекает время ожидания PHP.

Поскольку у вас еще много ресурсов, вы можете смело увеличивать MaxRequestWorkers. Также проверьте настройки тайм-аута PHP.

Если вы не сможете улучшить перфорацию (а ваш код может оказаться неэффективным), вам придется использовать оборудование.

Ни один из системных ресурсов ни при каких условиях не может быть ограничен. ЦП только до 25%.

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