BlueBSH

I just wrote a little test application with a client and server that just instanciates a person object with just text fields and creates it 100 times then times it's creation... on our local system it takes 69 ms to complete... over the internet it takes 8964 ms to complete... why such a HUGE difference our internet connection is a symetric 3mbit connection low latency (about 32 ms) between our internal connection and the test site..

edit: some more information on this

the original test was from an internal network going out through an ISA 2004 server... when we did an external to external test it worked great, anyone know why ISA 2004 SP3 would slow it down so much here are our test results from our example benchmarks

Each is with 1,000 instanciations in milliseconds

Local Machine 154

Through ISA 2004 To Remote 193,542 (~100x worse then local)

Verizon DSL to Comcast Cable 16,887 (~10x worse then local)



Re: .NET Remoting and Runtime Serialization Very slow over internet, fine on intranet

Ryan Lamansky / Kardax

I'm not sure why ISA would cause such performance loss (might be an ISA configuration issue), but in general, latency can be a huge problem for internet applications. If you have to do a network round trip for each instantiation, 16ms latency becomes 16 seconds with 1000 instances. Local latency is near zero.

You may be able to mitigate this by creating the instances in parallel using something like the ThreadPool class. Other instances can create themselves before the previous one is finished.

The best solution is to reduce the number of objects you're creating.

-Ryan / Kardax





Re: .NET Remoting and Runtime Serialization Very slow over internet, fine on intranet

BlueBSH

This was just a benchmark test of course, but I cant understand why its so horrible when running through ISA only....



Re: .NET Remoting and Runtime Serialization Very slow over internet, fine on intranet

mahjayar

BlueBsh,

I assume you are using the http channel and the suggestions are based on that, so post back if that isnt the case.

I think this is a ISA configuration issue.

Can you check couple of things,

1. Sniff the traffic between your proxy and your client to see whats the time taken for each requests.

2. Try disabling Expect-100 Continue reqeusts for your POST reqeusts.

3. Try to increase the ConnectionLimit to the proxy server. Most probably all your requests are waiting to use the 2 (default value) connections to the proxy and hence that could be a bottleneck. You can change this (appdomain wide) by setting ServicePointManager.DefaultConnectionLimit to something high like 10.

4. Sniff your server to see whether the IIS/Webserver on that box is configured properly.

I would start with suggestion # 3.






Re: .NET Remoting and Runtime Serialization Very slow over internet, fine on intranet

BlueBSH

Actually should of said this is binary formatting over tcp/ip, sorry about that! but thanks anyways!