On 12/24/06, Gaston Dombiak <[EMAIL PROTECTED]> wrote:
Hey Vinod,
For some reason we are not able to go over 33K concurrent connections. I
still have to figure out where the bottleneck is. Interestingly, the CPU
looks fine (7%), memory fine (50% of max heap), thread dumps fine, no
errors....all is fine but the system slows down up to the point of no
longer working.
Are you talking about 33K concurrent connections that are just
connected and sitting idle or doing I/O? Is 'top' showing I/O wait
times?
Do you have more info about your experience? I would like to know how
you were able to establish when you hit a hardware limit, when it was a
JVM-epoll limitation or whatever. In your experience, which JVM
implementation was the best one (scalable) and epoll
implementation/version. If you can suggest tools or commands to use to
monitor our linux/solaris environments it would be great.
You can search the lists for more information. I think it was around
March/April of last year that we had done this. Basically, you will
have to monitor network, disk, cpu (user, system and i/o wait times)
and memory to ascertain whether you have hit hardware limits. I use
dstat, top, yourkit profiler and lsof to monitor the system.
In my recent tests with different JVM's I was surprised to see that
the Sun 1.6 JVM was doing much better with high number of connections
than JRockit. I couldn't get the IBM JDK running successfully since
it was not running the binary and I couldn't get it to work with Maven
either. Have pushed that activity on the back burner for a while.
AFAIK, all these JVM's provide epoll implementations.
A test on Solaris is still pending. But I've got a 64-bit AMD64
version of Solaris installed, so the performance would vary quite a
bit from the UltraSparc version I guess.
Regards,
Vinod.