Сервер apache mpm_worker не смог ответить

Я пытаюсь обновить нашу текущую конфигурацию Apache 2.4.9 с использования prefork до рабочего mpm. Я провожу простое нагрузочное тестирование с использованием jmeter, чтобы сравнить производительность между 2. Мой первый тест довольно прост: просто получите одно изображение в формате gif, используя 10, 200, 300, 600, 1000, 1600 одновременных потоков /vusers jmeter и загрузка сервера в течение некоторого времени, чтобы увидеть среднюю пропускную способность и время отклика, а также влияние на процессор, память и т. д. Как и ожидалось, рабочий, вероятно, выполняет предварительную обработку лучше, чем prefork, однако в 2,5–5% запросов возникают ошибки независимо от количества потоков jmeter /vusers. Jmeter сообщает, что получает: "Целевой сервер не отвечает". Я не вижу ошибок в http_error.log. Страница состояния системы и Apache сообщает о большом количестве процессоров и доступной памяти. Я не получаю ошибок при использовании prefork, выполняющих те же тесты. Моя рабочая конфигурация выглядит следующим образом:

ServerLimit 32
StartServers 8
MaxRequestWorkers 1600
MinSpareThreads 100
MaxSpareThreads 150
ThreadsPerChild 50
MaxConnectionsPerChild 1000
ThreadLimit 100

Я пробовал различные комбинации, увеличивая и уменьшая ServerLimit, ThreadsPerChild и т. Д., Но все еще получаю небольшой процент ошибок, используя рабочий mpm. Есть ли дополнительная директива модуля, которую мне нужно настроить? Это один из компромиссов для использования работника? Могу ли я включить дополнительное ведение журнала?

1 ответ

Смотрите следующие ресурсы:

  1. Сброс соединения с JMeter 2.10? - для страницы Apache JMeter Wiki с объяснениями и обходным путем
  2. Руководство по настройке свойств Apache JMeter - для более гибких способов применения обходного пути для такого поведения.
Другие вопросы по тегам