У меня есть ванильное приложение Play 2.6, которое не может обрабатывать более 12 одновременных подключений.Также влияет на Play 2.5.
Это пример контроллера:
public class TestController extends Controller {
public Result index() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return ok("");
}
}
Тестирование с 12 одновременными подключениями:
ab -n 12 -c 12 http://localhost:9000/
выход:
...
Concurrency Level: 12
Time taken for tests: 1.005 seconds
Complete requests: 12
...
Таким образом, все 12 одновременных запросов ответили в течение 1 секунды, что и ожидалось.
Тестирование с 13 одновременными подключениями:
ab -n 13 -c 13 http://localhost:9000/
вывод:
...
Concurrency Level: 13
Time taken for tests: 2.004 seconds
Complete requests: 13
...
Теперь 13 одновременных подключений заняли 2 секунды.Обе ситуации были протестированы несколько раз и дали согласованные результаты.
Почему это происходит?Конечно, Play должен уметь обрабатывать более 12 одновременных подключений?