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

Apache Prefork работает быстрее, чем Worker MPM для обслуживания статического контента?

Я обнаружил так много вещей, связанных с Apache worker MPM, работает быстрее, чем Prefork MPM, я знаю, что nginx - еще один вариант, но я хочу придерживаться apache в отношении использования htaccess и некоторых других функций, поэтому я провожу сравнение, используя тест apache тестирование для обслуживания файла статического содержимого (bg.png) (размер = 232 КБ), и я удивился, увидев результаты, что предварительный форк apache обслуживает статический контент быстрее, чем рабочий, разница не так велика, но результаты вызывают у меня сомнения, и я не принимая решение по тестам ниже, пожалуйста, помогите мне.

Оба теста выполняются на одном сервере с использованием интерфейса loopback (127.0.0.1) localhost, чтобы избежать сомнений, связанных с задержками сети / пропускной способности, а также без сохранения активности.

1) Протестируйте с помощью prefork apache

prefork MPM

StartServers 5 MinSpareServers 3 MaxSpareServers 5 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 4000

ab -n 1000 -c 900 http: //localhost/bg.png

Путь к документу: /bg.png Длина документа: 235354 байта

Уровень параллелизма: 900 Время, затраченное на тесты: 1,053 секунды Полных запросов: 1000 Неудачных запросов: 0 Ошибок записи: 0 Всего передано: 235983024 байта Передано HTML: 235738292 байта Запросы в секунду: 949,68 [# / сек] (среднее) Время на запрос: 947,690 [мс] (среднее) Время на запрос: 1,053 [мс] (среднее, для всех одновременных запросов) Скорость передачи: 218855,25 [Кбайт / сек] получено

Время соединения (мс) мин. Среднее [+/- sd] среднее макс. Число подключений: 0 111 295,5 1 1000 Обработка: 3137 207,8 59 631 Ожидание: 0 136 208,1 58 631 Всего: 22 248 334,4 73 1024

Процент запросов, обслуженных в течение определенного времени (мс) 50% 73 66% 79 75% 660 80% 664 90% 672 95% 1019 98% 1022 99% 1023 100% 1024 (самый длинный запрос)

2) Тест с использованием Worker MPM

ThreadLimit 200 StartServers 3 ServerLimit 25 MaxClients 2000 MinSpareThreads 50 MaxSpareThreads 200 ThreadsPerChild 100 MaxRequestsPerChild 0

Путь к документу: /bg.png Длина документа: 235354 байта

Уровень параллелизма: 900 Время, затраченное на тесты: 1,061 секунды Полных запросов: 1000 Неудачных запросов: 0 Ошибок записи: 0 Всего передано: 264421004 байта Передано HTML: 264146992 байта Запросы в секунду: 942,39 [# / сек] (среднее) Время на запрос: 955,018 [мс] (среднее) Время на запрос: 1,061 [мс] (среднее, по всем параллельным запросам) Скорость передачи: 243347,56 [Кбайт / сек] получено

Время соединения (мс) мин. Среднее [+/- sd] макс. Медианное соединение: 0 58 158,4 37 1003 Обработка: 31 255 330,6 88 884 Ожидание: 0 223 336,7 50 870 Всего: 68 313 354,1 112 1034

Процент запросов, обслуженных в течение определенного времени (мс) 50% 112 66% 150 75% 900 80% 905 90% 920 95% 921 98% 1032 99% 1033 100% 1034 (самый длинный запрос)

Ниже приведены отличия

Статистика Prefork

Время, затраченное на тесты: 1.053 секунды Всего передано: 235983024 байта Передано HTML: 235738292 байта Запросы в секунду: 949,68 [# / сек] (среднее) Время на запрос: 947,690 [мс] (среднее) Время на запрос: 1,053 [мс] (среднее значение для всех одновременных запросов) Скорость передачи: 218855,25 [Кбайт / сек] получено

статистика рабочих

Время, затраченное на тесты: 1.061 секунды Всего передано: 264421004 байта Передано HTML: 264146992 байта Запросы в секунду: 942,39 [# / сек] (среднее) Время на запрос: 955,018 [мс] (среднее) Время на запрос: 1,061 [мс] (среднее значение для всех одновременных запросов) Скорость передачи: 243347,56 [Кбайт / сек] получено

так, как указано выше

Время, затраченное на тесты + время на запрос для префорка меньше, чем для рабочего. Итак, пожалуйста, подскажите и предложите, лучше ли prefork для обслуживания статического контента?