Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Our enterprise is having some problem when the number of incoming request goes beyond a certain amount.

To make things simpler, we have N websites that uses, amongst other, a local web service. This service is hosted by IIS, and it's a .NET 4.0 (C#) application executed in a farm. It's REST-oriented, built around OpenRasta.

As already mentioned, by stress testing it with JMeter, we've found that beyond a certain amount of request the service's performance drop.

Anyway, this service is, amongst other, a client itself of other 3 distinct web services and also a client for a DB server, so it's not very clear what really is the culprit of this abrupt decay. In turn, these 3 other web services are installed in our farm too, and client of other DB servers (and services, possibly, that are out of my team control).

What strategy do you suggest to try to locate where the bottleneck(s) are? Do you have any high-level suggestions?

share|improve this question
    
Confused here; you ask '...bottleneck in a network' but list all the applications. Are you looking for network issues or app issues? –  Stephen Dec 6 '12 at 14:38
2  
I'm looking for app issues, our monitoring system says that the 2 GBps network is not the culprit. I meant "network" as "network of application" :-) –  Simone Dec 6 '12 at 14:41
add comment

1 Answer 1

up vote 1 down vote accepted

In performance diagnostics and tuning there are no easy answers. Every component is suspect and be careful what assumptions you make. In my experience 95% of the problem were our assumptions.

From your description my wild guess is you have a pool problem. Check the connection and worker pools for your databases and web services. Check their size and more importantly if db connections are not being closed. Pool size might be a better question over on serverfault

Some easy steps are checking network links, cables and port speeds. The basic Windows task manager can tell you a lot about a server and the cpu + memory use of each process (you need to set the options to show the extra statistics)

Story: we too used Jmeter and found a mysterious performance problem. The test servers were only 50% utilized but transactions were stuck at a specific rate. 2 days later we discovered the NIC in Jmeter box was running at 100Mb and not gigabit.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.