I have developed a java client server app based on socket programming. I am now testing multiple clients contacting the server concurrently. On my server I am running eclipse, chrome, mysqld, memcached, mysql admin, mysql query, my java server, and concurrent clients about 5. The payload of request and response is not more than .5kb (at most). About 5 requests per client sequentially. When I run 1 client, things are fine, if I run 5 concurrently my server does not seem to respond.
Now, my question is. I have a vanilla Ubuntu 32 bit installed. Will fine tuning the networking help? Or do you think its possibly a problem with my app itself.
I’m running a dual core processor with 4gb ram, Ubuntu 32bit.
I am looking for good blogs/links to read.
Edit
On a a deeper investigation, I realized that my server was not getting requests. But my client is sending it. Anyway to check if the server has received the request, and decided to drop.
The nature of the problem seems to be in some concurrency mishandling on the server. Are you sure there is proper locking of objects on the server? Are there no deadlocks? Is your code threadsafe?
5 requests at the same time is nothing – just open 5 tabs in Chrome and you will see.