views:

69

answers:

4

i have a asp.net mvc website and the volume of traffic is increasing. I have the site pointing to a backend sql server 2008 database.

at what point, do i need to figure out what the bottleneck of the system and look to review if i need to load balance machines, or change the way i am doing database connection management.

are there specific tools and thresholds that are indicators that the current model isn't scalable or is hitting a breaking point (besides just observations of a slow site.

+4  A: 

When you start noticing performance issues.

George Stocker
the reason i dont like this answer is what if it works fine for me, but some users in Asia are seeing slow performance. I rather not wait for people to complain. . .
ooo
It's as specific an answer as I can give with the information you've given. First you have to know what your threshold for performance is before you determine you need to profile your app. How long of a load time is too long? How many database calls are too many? It all depends on what your users experience when they go to your site. If your mom or brother think it's too slow, then it's too slow.
George Stocker
oo, you should create a new question describing the symptoms you're seeing.
gWiz
If people in Asia are seeing performance issues, it's probably due to latency.
Ryan Doherty
+1  A: 

There are a plethora of tools available to address the plethora of possible bottlenecks. A decent performance tuning strategy starts with measurement and consistent instrumentation of the given system.

But performance tuning requires precious time and resources, and should only be pursued when it gives you the most bang for the buck, i.e. it provides the greatest improvement to achieving your website's objectives given the work required. If your website supports (or is) a business or organization, you must continuously evaluate the business landscape and plan the next allocation of resources. This is entirely dependent on the particular industry.

An engineer might focus on continual refinement of an existing system, but the project commissioners (be they an external client, or your company's management) must weigh the costs and benefits of all types of development, from improving an existing featureset, to adding new features, to addressing technical limitations affecting product usability (including performance issues). That's not to say engineers have no say in resource allocation, but their perspective is just one of many contributing to success.

gWiz
+1  A: 

There are some very easy things you can do to increase performance with so little work, it's easier to do them that see if you need to yet ;)

First and foremost is putting all static images and other media on a separate server. That eliminates a whole lot of queries on the boxen running the dynamic parts of the web server.

Next in line is make sure you are using as many hard drive spindles as possible. Of course you want your database on a separate machine, let alone a separate hard drive, but you also want your web server logs written to a separate hard drive. That prevents a lot of jumping around of the hard drive heads.

As far as "how do you know when you need to performance tune", I will give a different answer than George Stocker: When there is a cost associated with your performance that outstrips the cost of looking into it. I say it this way because your customers may be a little unhappy if your website is a little sluggish, but if it doesn't prevent anyone from using it, or recommending it to others, then it may not be worth looking into. People put up with sub-optimal performance all the time.

dj_segfault
A: 

When you have doubts that the website would survive a doubling in max usage. One common line of thought where I am from is that you should have the performance capacity to support at least 2x the number of users you expect.

Determining whether or not you can support 2x is something better left to load testing though, rather then speculation. One comment from your other comment though: chances are a website performance problem is going to affect everyone using the web site, including you on a local machine... unless it's a bandwidth problem and you're connected to a local network. Barring cable cuttings, it's not going to be 'just the people in Asia'.

CoderTao