.NET Forum / ASP.NET / General / January 2008
Website Running Slow Please Help.
|
|
Thread rating:  |
Tageldinho - 28 Jan 2008 16:50 GMT Greetings all, I am the Web maintenance guy for a non-profit org, and have been getting a lot of complaints that our website is running slow (and I agree at times), we run asp.net but outsource our programming. I was wondering if maybe you could help out and give me any clues as to why our website could be running so slow. I've spoken about it with our programmers and they said they have changed some of the code so that it doesn't hit the database as often which makes sense but I saw little to no change really. The website especially runs slow if it's not cached in your browser and from google analytics most of our daily visitors are new.
I am not sure if it is a hosting problem or a programming problem, that is why I posted in this group any tips/hints/ideas and help is welcome.
the site is www.orbis.org
Thank you all very much in advance.
Samuel R. Neff - 28 Jan 2008 17:17 GMT This is something your outsourced programmers should be able to take care of. If they can't make it faster or prove that it is running within acceptable parameters (which depends on whatever contract you have with them), then you might want to look into finding a different company to outsource to.
That said, there are lots of places to look. Start with the database and SQL Profiler. That will show you what queries are running and how long they take. That is usually where bottlenecks exist.
Then you can use can HTTP monitor like Fiddler or Charles to browse through your site and see how long individual requests take.
http://www.fiddlertool.com/fiddler/
http://www.xk72.com/charles/
If the requests take significantly longer than the queries, then you need to dig deeper either by using ASP.NET's trace functionality or a profiler or performance monitor. I think a profiler would get you the fastest results, but you really need to be a programmer to be able to use one and understand it's output. I like redgate's ANTS Profiler myself.
http://www.red-gate.com/products/ants_profiler/index.htm
If you can find a bottleneck, then the best thing is to feed this info back to your programmers and have them fix it and also document how you found it and express that you're doing their job for them blah blah blah.
HTH,
Sam
------------------------------------------------------------ We're hiring! B-Line Medical is seeking .NET Developers for exciting positions in medical product development in MD/DC. Work with a variety of technologies in a relaxed team environment. See ads on Dice.com.
>Greetings all, I am the Web maintenance guy for a non-profit org, and >have been getting a lot of complaints that our website is running slow [quoted text clipped - 14 lines] > >Thank you all very much in advance. Tageldinho - 28 Jan 2008 19:55 GMT Hey Sam,
Thanks for the help. I will look into all the resources you gave me. Is it any guarantee that it is a programming problem that is slowing it down? Is there any possibility that it may be a hosting problem? I've tried to go through them and have gotten nothing, but the programmers we outsource to sort of point the blame elsewhere.
Thanks again for the help.
Adam
> This is something your outsourced programmers should be able to take > care of. If they can't make it faster or prove that it is running [quoted text clipped - 60 lines] > > - Show quoted text - Jeff Dillon - 28 Jan 2008 20:29 GMT Of course look at other websites hosted on your ISP, and see if their websites are slow also. It could be a slow server. Use basic troubleshooting techniques
Jeff
Hey Sam,
Thanks for the help. I will look into all the resources you gave me. Is it any guarantee that it is a programming problem that is slowing it down? Is there any possibility that it may be a hosting problem? I've tried to go through them and have gotten nothing, but the programmers we outsource to sort of point the blame elsewhere.
Thanks again for the help.
Adam
On Jan 28, 12:17 pm, Samuel R. Neff <samueln...@nomail.com> wrote:
> This is something your outsourced programmers should be able to take > care of. If they can't make it faster or prove that it is running [quoted text clipped - 58 lines] > > - Show quoted text - Diffident - 28 Jan 2008 23:07 GMT Best place to start would be event logs. Scan through them and see if you are noticing any errors. Make sure that you open your event logs and simultaneously browse through the website.
Being a programmer, I would also like to see how many times the worker process which w3wp.exe is being recycled. Search MSDN to see how to log the worker processes recycle events in the logs. If you notice that there are too many recycles then it is definitely the application code that is causing the problem. You can ask your programmers and let them know that there is a memory leak somewhere or they might be allocating too many objects and garbage collector might be running too often which is very expensive and can slow your website.
You can use MMC to examine the "ASP.NET Memory" performance.
Please let me know how the things progress. I would appreciate your feedback.
How much RAM does the machine have?
> Of course look at other websites hosted on your ISP, and see if their > websites are slow also. It could be a slow server. Use basic troubleshooting [quoted text clipped - 79 lines] > > > > - Show quoted text - Sanket Sirotiya - 29 Jan 2008 09:03 GMT The W3wp.exe process consumes up to 99 percent of the CPU ... http://support.microsoft.com/kb/900243
 Signature Thanks, Sanket Sirotiya (sanket.sirotiya@yahoo.com)
> Best place to start would be event logs. Scan through them and see if you > are [quoted text clipped - 105 lines] >> > >> > - Show quoted text - Samuel R. Neff - 29 Jan 2008 16:49 GMT Passing the buck without proof is a bad practice, but unfortunately common. If your programmers want to blame the host, they should only do so after providing proof that it runs at a certain speed on their servers and runs slower on the host (at a similar load).
It is possible the host is putting too high a load on the servers or has done something else to degrade performance, but it sounds like the programmers are just assuming that's the case without actual investigation.
HTH,
Sam
------------------------------------------------------------ We're hiring! B-Line Medical is seeking .NET Developers for exciting positions in medical product development in MD/DC. Work with a variety of technologies in a relaxed team environment. See ads on Dice.com.
>Hey Sam, > [quoted text clipped - 7 lines] > >Adam Tageldinho - 30 Jan 2008 15:32 GMT Sorry for the response in delay, hectic work + Jury Duty = late response.
My sentiments exactly Sam, it seems as if they are assuming it without actually investigating.
Diff: I have been looking at several different articles on msdn and I'll let you know how everything progresses and I'm sure I will have tons of questions for all of you once I get a chance to run some more performance tests with all the tools provided (although with this jury duty and vacation coming up I might be late in responding).
Also, they have recently implemented a new caching system on the website so that everytime a user visits a page instead of the site hitting the database everytime and storing the info in an object it will load and place the object into the cash so that if someone else visits that page it will look in the cache first and prevent it from hitting the database (given the page has been loaded previously within the last 20 minutes as this is the time the caching is set to expire). After the 20 minutes is up it is automatically deleted from the memory.
Looking at the site this morning I have seen some significant speed increases (for most pages at least) some still give slow reponses but obviously that is because they probably weren't viewed therefore weren't cached.
Is this method common practice for web developers? Or is this a sort of quick fix? In my opnion it seems this is only a temporary solution but the underlying issues still remain.
Any thoughts and opinions would be much appreciated.
Thanks again,
Adam
> Passing the buck without proof is a bad practice, but unfortunately > common. If your programmers want to blame the host, they should only [quoted text clipped - 32 lines] > > - Show quoted text - Tageldinho - 30 Jan 2008 15:56 GMT And sorry Diff forgot to mention I am on 1GB of Ram...
> Sorry for the response in delay, hectic work + Jury Duty = late > response. [quoted text clipped - 71 lines] > > - Show quoted text - Diffident - 30 Jan 2008 19:15 GMT 20 minutes timeout...huh. That is the default timeout. How frequently does the data change? If not that frequently why not increase the timeout to 60 min instead?
Invalidating the cached objects can trigger the garbage collection. Of course it also depends on how big the cached data is.
Ask us any questions you may have during this process, I would be happy to assist you.
> And sorry Diff forgot to mention I am on 1GB of Ram... > [quoted text clipped - 73 lines] > > > > - Show quoted text Tageldinho - 30 Jan 2008 21:36 GMT Oh, I was unaware that 20 minutes was the default, the content doesn't change enough for an increase to 60 minutes to make a difference really... If it's really urgent I could always just clear the cache so that it posts immediately.
As far as triggering garbage collection, I assume you mean that by not validating the objects that have been cached it could possibly pull up the wrong or distorted objects?
Thanks again, more questions will follow!
_Adam
On Jan 30, 2:15 pm, Diffident <Diffid...@discussions.microsoft.com> wrote:
> 20 minutes timeout...huh. That is the default timeout. How frequently does > the data change? If not that frequently why not increase the timeout to 60 [quoted text clipped - 85 lines] > > - Show quoted text - Diffident - 30 Jan 2008 21:59 GMT Yes, 20 minutes is the default timeout. And, remember you cannot kill specific cache objects that have been created programmatically. You have to use iisreset!
If the content is not changing that often then you can safely bump the timeout to say 60 min. Setting it to more than 60 min might not be optimal since it can overkill the server's memory sometimes.
If the objects are not invalidated even if the data has been changed then you end up serving stale information which may not be real-time or up-to-date.
> Oh, I was unaware that 20 minutes was the default, the content doesn't > change enough for an increase to 60 minutes to make a difference [quoted text clipped - 100 lines] > > > > - Show quoted text - Samuel R. Neff - 31 Jan 2008 19:22 GMT Caching is a very common way to improve performance, but it sounds like you still have some underlying performance problems that really should be fixed. Caching is great when the content you're generating requires a ton of processing or is extremely database intensive, or in extremely high volume sites where there are a number of concurrent requests for the same data (think of situations where caching times in seconds would be appropriate). Does that situation apply to your application?
Also, generally it's better to expire items from the cache manually when the underlying data changes. That's not always possible if the cache is based on external data, but if the cache is data that your application itself has control over, then the admin portions of the application that write data to the database should know what items are cached and can cause immediate expiration.
Another thing to look into is SQL Server 2005 Query Notifications. These are a type of cache, but they automatically expire when the underlying data changes without as much work from the developer. It's still caching so is not a true solution, but it sounds like this would be better than the time based caching you're doing now.
HTH,
Sam
------------------------------------------------------------ We're hiring! B-Line Medical is seeking .NET Developers for exciting positions in medical product development in MD/DC. Work with a variety of technologies in a relaxed team environment. See ads on Dice.com.
...
>Also, they have recently implemented a new caching system on the >website so that everytime a user visits a page instead of the site [quoted text clipped - 5 lines] >After the 20 minutes is up it is automatically deleted from the >memory. ...
>Adam
Free MagazinesGet these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...
|
|
|