Производительность Tomcat тюнинг
я настраиваю производительность Tomcat 7, сервер оснащен 24 ядрами и 32 ГБ памяти, мой интерфейс тестирования-это RESTful сервис без какого-либо процесса(ответ сразу) и конфигурации сервера.XML имеет следующие...
<Connector port="8088" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
enableLookups="false"
compression="off"
maxConnections="8192"
maxThreads="1000"
tcpNoDelay="true"/>
и конфигурация JVM...
-Xms8192M -Xmx16384M.
хозяин JMeter другой компьютер имеет такую же спецификацию с вышеуказанным сервером.
И конфигурация кучи JMeter -Xms12218m -Xmx24426m
.
мой план испытаний JMeter 240 запросов отправляются в интерфейс RESTful одновременно один раз, но я заметил, что среднее время ответа для первых 100 составляет не более 50 мс, но оно увеличивается до 1 сек в следующем 100 и до 3 сек для остальных.
мне любопытно такое явление, есть ли какие-либо ошибки в конфигурациях или какие-либо предложения?
спасибо заранее.
2 ответов
Вы можете конфиг:
acceptCount="2048"
и
maxConnections="1024"
maxConnections имеет отношение к maxThreads, и вы должны настроить maxThreads соответствуют вашему бизнесу и номеру ядра процессора, например 8X или 16X. acceptCount-это номер ожидающего соединения.
обратите внимание, что maxConnections и maxThreads не больше, тем лучше, с производительностью вашего серверного оборудования.
тем больше запросов на ваш сервер обслуживать, тем больше времени требуется для обслуживания каждого запроса. Это нормальное поведение.
Как вы начинаете свои потоки одновременно? Время рампы = 0 или 1?
при запуске загрузки потоков клиенту требуется больше времени для выполнения запросов,а серверу-для ответа.
при запуске сервер может довольно быстро реагировать на все запросы, так как ему больше нечего делать, пока он не достигнет порог. Каждый из этих запросов быстро завершится, и тот же поток отправит другой запрос. Между тем, сервер отвечает на предыдущую волну потоков, в то время как другие становятся в очередь. Теперь он должен управлять очередями, все еще отвечая на запросы, поэтому выполняется другой порог.
в принципе, запуск группы потоков и одновременный запуск запросов не очень реалистичный вариант использования для сервера, за исключением нескольких случаев. Если это актуально, вы можете ожидать этого поведение.