TCP/IP Connection getting slower...

Hi,
We have developed a server program using TCP/IP Communication to communicate with another client program. After running for some days we find the TCP/IP connection from the server program is getting slower.

What i mean to say is since the send() function in the server program (it is in the blocked mode)is blocked, we suspect the reason for the slowness in sending the message to the client program could be because of the TCP buffer (in the server)getting full and the clients failure to pull the messages from the buffer in time.All these is being coded in a posix thread.

We have been perplexed by this problem for quite a long time. we intially though it could be the network problem..but the network is 100Mbs..

The hardware used is sun solaris machine..

I will be very grateful if some one can advice us in finding a solution for this problem.

what type of Hub are you using? Are you also on clients/server based connection? If the answer to this question are yes.Then you need to change either to a switch.

kayode

What version of Solaris are you running? The connection fudge factor may be scaling out of control for you.

Performance addressing: Threading will add some performance problems since it's constantly opening and closing the fd. Blocking is the correct way to address threaded writes to a fd (since it will wait for all oddities of tcp)- In comparing a read / write test of 1024 bytes in Stevens' UNIX Network Programming (1998), you see how an un blocked, non threaded program took 8.8 seconds to transfer, while a non threaded version with out blocking, did the same xfer in .3 seconds. Hardware in place were all 100 fe switches.

That book is an excellent resource for performance issues that are difficult to spot.