tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alex Moskvin <moskvin.alek...@gmail.com>
Subject Tomcat performance problem
Date Sun, 25 Nov 2012 00:50:40 GMT
Hi,

I am using Tomcat 7.0.30 and OpenEJB 4.5 to host high loaded app and at
some point found with VisualVM there is a bottleneck when there is a lot of
concurrent requests (about 400-600 req/sec). Requests and responses are
small (usually not larger than 2kb in JSON format) - almost all CPU time is
occupied by TaskQueue.poll() calls and general response latency becomes
very slow.
I tried APR/Nio connectors and different threading setting and that didn't
help anyhow. Tuning (increasing) amount of threads in thread pools didn't
help as well.
Tests were conducted on Intel Core i7 3450, 8Gb RAM, 100Mb network, RHEL
6.3 x64.

How to interpret this relatively low request rate? What I might be doing
wrong? What can be tuned in Tomcat to improve request handling?
Because we expect much larger request rate processing speed on the
mentioned hardware.

Here is a VisualVM top output:

Hot spots - method; self time [%]; self time; self time (cpu)

org.apache.tomcat.util.threads.TaskQueue.poll() 75.508965 57 668 249 ms
(75,5%) 0,000 ms
net.spy.memcached.internal.OperationFuture.get() 14.22508 10 864 079 ms
(14,2%) 6 798 ms
net.spy.memcached.internal.BulkGetFuture.internalGet() 5.6411114 4 308 270
ms (5,6%) 0,000 ms
org.apache.tomcat.util.net.NioEndpoint$Poller.run() 0.71728086 547 806 ms
(0,7%) 530 252 ms
org.quartz.core.QuartzSchedulerThread.run() 0.69727546 532 528 ms (0,7%)
0,000 ms

Regards,
Alex

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message