В настоящее время я пытаюсь переместить свой веб-сервер (на основе php zendframework) с Ubuntu на FreeBSD. Оба сервера имеют одинаковую конфигурацию оборудования. После миграции я провел тест JMeter (HTTP-запрос (Json), Concurrent = 200) сервера, «Пропускная способность» на сервере FreeBSD была вдвое выше, чем на сервере Ubuntu, что потрясающе.
Однако, когда я увеличиваю число одновременных запросов до 500, я вижу почти 50% запросов Failure из-за «java.net.SocketException: сброс соединения». Но на сервере Ubuntu он работает нормально.
После многократного тестирования я обнаружил, что Ubuntu может обрабатывать 1500 одновременных httprequest без ошибок, сервер FreeBSD может обрабатывать 200 одновременных запросов с двойной скоростью без ошибок, но не может обрабатывать больше. Чтобы проверить результат, я попробовал команду AB. **ab -c 200 -n 5000 127.0.0.1/responseController
. Он не работает и завершается, если параметр ¬-c
превышает 200, но отлично работает в Ubuntu.
Для отладки я сделал следующее: 1. Как-то изменил httpd.conf, /boot/loader.conf, /etc/sysctl.conf, но похоже, что ничего не изменилось. 2. Я пытаюсь переключиться на mpn_worker_module в конфигурации Apache и соответствующую конфигурацию в php. Ничего не изменилось, но журнал части сбоя был другим, в котором отображалось «запрос не отвечает», а не «java.net.SocketException: сброс соединения».
Я много искал, но не смог найти причину сбоя. Я думал, что запрос Json будет ждать ответа или тайм-аута? Я не уверен, какой файл конфигурации или параметр заставит его работать.
Пожалуйста помоги.