Groups | Blog | Home
all groups > dotnet performance > january 2004 >

dotnet performance : TCP/Binary Remoting and Perf Problems


Raghu
1/29/2004 11:13:39 AM
Our deployement consists of web server (dual processor) and application
server (dual processor). The ASP.NET web application makes remoting
(Tcp/Binary) calls into a window service (our own) hosted on application
server. During our load testing, we found that there is huge gap in time
during cross machine call. We made sure the appliction server is not really
taking all the time to servicing the request. We used .NET profiler to find
out this.

Now the question is what is going on between two machines that is causing
this delay. We checked the network pipe between two machines. It is not
being used to the capacity. This really did not make sense. So we moved
window service to the web server and tested again. The problem persisted.
The CPU time stayed below 70% and we don't see any I/O or page faults.

Has any come across this kind of problems? I would appreciate any comments
or suggestions.

Thanks.
Raghu/..

David Browne
1/29/2004 10:20:28 PM

[quoted text, click to view]

Hmm. A web server _is_ an application server. Are you under the impression
that using remoting to communicate between your aspx pages and your business
components is a normal thing to do? Do you think that remoting is magical
and free?

Looking at your performance counters, what is the rate of

-.NET CLR Remoting/Remote Calls/sec?

-System/Context Switches/sec?

-ASP .NET Apps v1.1.14322/Requests/sec?

When you run your application components inside aspnet_wp what do these
metrics look like?

What is your target for Requests/sec?

What does the interface for your remote objects look like?



David




Use these metrics to figure out: how many

Nat
1/29/2004 10:27:55 PM
How big is the gap you are talking about?

Nat

[quoted text, click to view]

Raghu
1/30/2004 7:02:23 AM
On average, we are seeing about 3.5 seconds.

[quoted text, click to view]

Raghu
1/30/2004 7:08:02 AM
Well, it can be application server, if you architect it that way. We simply
chose not to. We know for sure is that ASP.NET requests are not being backed
up. This tells us that it is not the bottle neck or we are not putting
enough stress on it.

We sort of follow the IDispatch methodology (don't ask me why, I am not the
author). The request type along with parameters is passed into a dataset as
shown below:

Public DataSet IDatasetRequest(DataSet ds);

The service simply implements the interface with this method and returns
dataset based on the request type.

"David Browne" <davidbaxterbrowne no potted meat@hotmail.com> wrote in
message news:etu4lhu5DHA.1664@TK2MSFTNGP11.phx.gbl...
[quoted text, click to view]

Chris Taylor
2/2/2004 2:49:55 AM
Hi,

Remoting DataSets is most likely where you are having your performance
problems. Regardless of the Channel/Formatter DataSets are always serialized
in XML format and for untyped DataSets the XSD is serialized along with it.

Hope this helps

--
Chris Taylor
http://dotnetjunkies.com/WebLog/chris.taylor/
[quoted text, click to view]

Anders Borum
2/3/2004 12:16:22 PM
Hello!

We had a performance problem with remoting, where using the hostname of the
target server would yield approx. 4 seconds delays. Entering the IP address
directly eliminated the delay.

Not sure this related to your problem, but I suggest you give it a try. We
found this to be related to the internal DNS setup.

--
venlig hilsen / with regards
anders borum
--

Sunny
2/3/2004 2:37:55 PM
Hi Anders and others,
take a look at this, it may help you solve your problem:

http://www.genuinechannels.com/Content.aspx?id=20&type=1

Sunny

In article <ez9Yvck6DHA.696@tk2msftngp13.phx.gbl>, na@na.na says...
[quoted text, click to view]
AddThis Social Bookmark Button