I've been doing some load testing with some relatively massive loads (more
than a 1000 clients or so) and I just did a quick stack trace and am seeing a
TON of threads in:
at
org.ops4j.pax.logging.slf4j.Slf4jLoggerFactory.getLogger(Slf4jLoggerFactory.java:92)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:249)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:261)
at
org.apache.camel.impl.DefaultUnitOfWork.<init>(DefaultUnitOfWork.java:50)
Looking at the code, it is looking up a logger per instance which is insane.
I'll fix that one (since it appears in a ton of stack traces), but a quick:
git grep "LoggerFactory.getLogger" | grep -v static
shows there are 80 other references to getLogger that aren't static. Some
of them may just be "startup time" things and thus aren't on the critical
path, but anything on the critical path is definitely something to look at.
--
Daniel Kulp
[email protected]
http://dankulp.com/blog
Talend - http://www.talend.com