 |
BorlandTalk.com Borland discussion newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Stephane Grobety Guest
|
Posted: Wed Jan 28, 2004 8:44 am Post subject: Re: Indy socket slow performance problem ? |
|
|
Well, I could see several issues here.
First and for-most, check the status of the naggle algorithm in both
your client and server socket. If you send very short messages, this
system will impair performances as the stack will try to wait for more
data in order to fill a full frame (about 15k on ethernet). This can
cause issues similar to yours so disable it if you just expect to send
short messages (as you seem to be doing).
Second, try to isolate the problem a bit better or, at least, describe
it a bit better: what is "slow": is it the connection time ? The data
transmission rate ? The time taken by the server to respond to a
request ? The whole process ? You see, all these could have very
different causes and it's nearly impossible to tell without more
details.
Could you also describe the condition you are testing under ? Are you
doing a single-client connection test or is that a production system ?
Heikki Wdhrn wrote:
| Quote: | Hi,
I have a Delphi 5/BDE application that uses TServerSocket to
communicate with data collection terminals by sending and receiving
messages from/to terminals.
Everything works fine, the average response time being <1 second.
Now I have converted the application to Delphi 7 and it is also using
ADO for
db access. The problem is that this version is very slow at some
points, the response time being about 4-6 seconds. I have examined
this by measuring the the time receiving a message to the sending the
answer is always <1 sec in my app.
I think this is not an ADO problem, because my app is not accessing
db when response time is slow (It is fast when accessing db !). First
I used the old TServerSocket, but then converted my app using
TIdTCPServer. This had no effect to the response time.
Any idea why my response is delayed about 4-5 sec occasionally when
reaching the client socket (terminal)? Message length is about 100
chars
Thanks in advance ! Heikki
|
|
|
| Back to top |
|
 |
Heikki Währn Guest
|
Posted: Wed Jan 28, 2004 8:46 am Post subject: Indy socket slow performance problem ? |
|
|
Hi,
I have a Delphi 5/BDE application that uses TServerSocket to communicate
with data collection terminals by sending and receiving messages from/to
terminals.
Everything works fine, the average response time being <1 second.
Now I have converted the application to Delphi 7 and it is also using ADO
for
db access. The problem is that this version is very slow at some points, the
response time being about 4-6 seconds. I have examined this by measuring the
the time receiving a message to the sending the answer is always <1 sec in
my app.
I think this is not an ADO problem, because my app is not accessing db when
response time is slow (It is fast when accessing db !). First I used the old
TServerSocket, but then converted my app using TIdTCPServer. This had no
effect to the response time.
Any idea why my response is delayed about 4-5 sec occasionally when reaching
the client socket (terminal)? Message length is about 100 chars
Thanks in advance ! Heikki
|
|
| Back to top |
|
 |
Heikki Währn Guest
|
Posted: Wed Jan 28, 2004 12:30 pm Post subject: Re: Indy socket slow performance problem ? |
|
|
I am sending only short messages, so how to disable this naggle algorithm ?
(TIdTCPServer side )
I have run my app on D7/IDE with two silent breakpoints (receive and send
message). There I see my application always process the answer message in 1
second. I also use a simple "sockettester" application (to monitor traffic
between client and server). There I see 5-6 sec delay time. This all happens
on my test environment with 1 client only (where D5 server is fast). D7
server cannot be put in production before solving this problem.
"Stephane Grobety" <grobety (AT) fulgan (DOT) com> wrote
| Quote: | Well, I could see several issues here.
First and for-most, check the status of the naggle algorithm in both
your client and server socket. If you send very short messages, this
system will impair performances as the stack will try to wait for more
data in order to fill a full frame (about 15k on ethernet). This can
cause issues similar to yours so disable it if you just expect to send
short messages (as you seem to be doing).
Second, try to isolate the problem a bit better or, at least, describe
it a bit better: what is "slow": is it the connection time ? The data
transmission rate ? The time taken by the server to respond to a
request ? The whole process ? You see, all these could have very
different causes and it's nearly impossible to tell without more
details.
Could you also describe the condition you are testing under ? Are you
doing a single-client connection test or is that a production system ?
Heikki Wdhrn wrote:
Hi,
I have a Delphi 5/BDE application that uses TServerSocket to
communicate with data collection terminals by sending and receiving
messages from/to terminals.
Everything works fine, the average response time being <1 second.
Now I have converted the application to Delphi 7 and it is also using
ADO for
db access. The problem is that this version is very slow at some
points, the response time being about 4-6 seconds. I have examined
this by measuring the the time receiving a message to the sending the
answer is always <1 sec in my app.
I think this is not an ADO problem, because my app is not accessing
db when response time is slow (It is fast when accessing db !). First
I used the old TServerSocket, but then converted my app using
TIdTCPServer. This had no effect to the response time.
Any idea why my response is delayed about 4-5 sec occasionally when
reaching the client socket (terminal)? Message length is about 100
chars
Thanks in advance ! Heikki
|
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|