Tomcat выполняет 15 тыс. Запросов в секунду на одном сервере с использованием Jersey Jax-RS - PullRequest
5 голосов
/ 01 ноября 2011

Я пытался протестировать что-то на VPS, и приблизился к 10 000 запросов в секунду, и это был simple 'hello world' servlet, не говоря уже о том, чтобы сделать вызов мембране.

Мой VPS представлял собой двухъядерную архитектуру Intel Xeon X5570 с четырьмя ядрами Nehalem.

Примечание: я не эксперт по java и не эксперт по tomcat, это было по умолчанию.

Кто-нибудь еще имеет дело с таким высоким трафиком, который может пролить свет?

Я использовал apache bench и запускал его, может быть, 4-5 раз, делая около 100 тыс. Запросов к серверу.

оригинал: как обрабатывать 2000+ запросов / сек на tomcat?

1 Ответ

16 голосов
/ 01 ноября 2011

Включите NIO (неблокирующий ввод / вывод).Это по умолчанию не включено.Без NIO каждое HTTP-соединение обрабатывается одним потоком, а ограничение зависит от количества доступных потоков.При использовании NIO несколько HTTP-соединений могут обрабатываться одним потоком, а ограничение зависит от объема доступной памяти кучи.Приблизительно с 2 ГБ вы можете подключиться к 20 КБ.

Включение NIO - это вопрос изменения атрибута protocol элемента <Connector> в Tomcat /conf/server.xml на "org.apache.coyote.http11.Http11NioProtocol".

<Connector
    protocol="org.apache.coyote.http11.Http11NioProtocol"
    port="80"
    redirectPort="8443"
    connectionTimeout="20000"
    compression="on" />
...