Hi, I am using MINA for client-server based communication on my Centos machine both of which reside on same machine. The architecture is the following:
Client has a single SocketConnector and manages a pool of active IOSession objects which can be utilized by any incoming request. This SocketConnector is invoked by tomcat once HTTP POST request comes to a particular url hosted on the machine. The client picks up an active session and fires the request to the socket server. I am using executor Executors.newCachedThreadPool() so that the request doesn't execute on IO thread. On the server end I have a socket server which uses a executor to process incoming IO request and send back response. The typical request processing involves db queries, sending sms on smpp server and returning back the result to the client. Typically this request processing can take upto 40secs to finish up(yeah I know its slow as sms sending and delivery report is to be proceesed) What I observe is the following even on a single request the CPU usage of tomcat java process shoots up very high which is very worrying given the system is expected to see more traffic in coming days. I have also tried to forcefully bring down the request processing time to 3secs by ignoring a few steps just to diagnose the problem, however there is no improvement, its just that cpu shoots for a smaller period i.e. from 40 secs to 3 secs. Any suggestions will be highly appreciated. Thanks ! Best Regards, Abhishek
