Zvika Gart wrote:

I wrote a simple client that connects to the server and pumps continuous
data.
Both client and server run on Amazon's EC2 on Debian Linux instances
(64-bit, Java 1.6). Client is in Europe and server in USA.


*The results:*
Simple Java implementation - 5 Mbps
MINA implementation - 750 Kbps

Tried removing the setUseDirectBuffers lines; tried a simpler threading
model by running the IoHandler on the IoProcessor threads... nothing helps -
MINA is capped at 750 Kbps.
What is going on here?!

Some things that you might want to do (mostly independent of each other):
- Check what the receive buffer size is for the MINA version
- Check if changing receive buffer size in MINA change performance?
 - NIO requires polling
- Write a simple pure NIO implementation to see if this might be a NIO issue
- Check if there are some differences in the traffic (e.g. TCP ACK patterns)
- Check what the MINA version and the simple version are doing - e.g. is MINA version consuming lots of CPU? - Check syscall patterns of the MINA version and try to see if something is taking unreasonably long time (pure NIO implementation might be helpful here)

Reply via email to