it has something to do with optimization performance capability and I don't even understand what this means
I tried searching the answers online but i cant seem to find anything
Yes, proxy servers can maximize performance by caching common/slow some pages and serving up these pages faster.
Related
I am fairly new to dealing with high traffic websites and I'm looking for a setup that will be able to scale well into the future.
My site currently uses one main script to pull data and store it into a database. The rest of the website is mostly presentation of this data from the database.
I have been looking at the possibility of using Amazon Web Services (EC2) or Google Compute Engine for running the main script. Then transferring that data to a more typical web hosting service. One thing I am not sure that I need to worry about is load balancing, I've seen that using NGINX for the load balancing can help improve the performance.
My goal is to have the site up 99.99% of the time and execute the script as fast as possible. It would be optimally nice to have a great support in case something goes wrong too.
Any ideas, comments, or suggestions are welcome. I'm am trying to learn how to handle this as I have a couple other websites that are currently growing and may need such a setup in the near future.
Thanks!
Google Compute Engine is still in its very early stages. For that reason alone, I would recommend using EC2. With EC2, you have all of the features you need. The ELB can seamlessly load balance between any amount of servers, which would help with the 99.99% uptime.
Using CloudFormation, you can define templates for scaling to run that script in a clustered environment.
Hope this helps.
Just find yourself a good host with a decent SLA, running a relational database within the cloud is asking for problems when you do get high database loads.
Don't be fooled, the cloud is a really nice solution for some problem.. but NOT ALL!
Same goes for NoSQL, and the combination of cloud and NoSQL.
Do your own research and don't be hoaxed by the marketing machines and the people not doing their homework.
Loadbalancing is nice but big change your database is the first bottleneck you run into.
Don't optimize thing before you need to!
If you are asking me, find yourself a decent dedicated (non-virtual) server with a decent SLA and backup plan.
Calculate howmuch 99.9% uptime actually is and realize that there is no problem in reaching that aslong as you have a decent SLA and proper backups.
You can always go from iron to the cloud,.. the other way around is a different story.
Can any help regarding the performance improvement in Asp.Net?The best practise tips for asp.net performance improvement?
This is a very broad question to answer because the Performance of an ASP.Net application is not only bound to page processing or bandwidth usage but also in the code and Algorithms you have written. If you use data source then the Performance of the Queries and ADo.Net. The Basic thing you might be asking is to improve page processing by Caching, etc..
Have a look here for a detailed description of Best Patterns and Practice (Though its old ..published in 2004 but still helps).
http://msdn.microsoft.com/en-us/library/ff647215.aspx
Or better consider this (For .Net4) . It list all performance related Documentation
http://msdn.microsoft.com/en-us/library/cc668225.aspx
Update
If you are looking for specific stuff slowing your page load
Use firebug's Net panel and monitor which resource is taking more time. Or as suggested by another answer use Tracing to check this out.
What is the best drug to get healthier? It all depends on what is your health problem. The same thing is with ASP.NET performance. First, find what is your bottleneck, a single most slow down factor. Then fix it, retest performance and, if more speed is necessary, go to the previous step.
How to find a bottleneck? If you really have no clue where to start, then start from analyzing your waterfall diagram. To create one from your client, use Fiddler or Firebug. To create it from different Internet geographies use WebPagetest. The waterfall will show whether the bottleneck is on the server or network, and also whether it is caused by main ASPX page or by resources (scripts, images, CSS). If the server and network are fast enough, then check slowness in the browser using Firebug or dynaTrace Ajax edition that can trace DOMContentLoaded/load events in browser. If the bottleneck is on the server, find out whether it is the database or application. Use database profiler and .NET profiler, for example from this question.
How to fix bottlenecks? Check this Microsoft resource, but there are many others for each type of bottlenecks.
If you add the “performance“ tag to your question you may get more answers.
Set trace="true" in the page directive. Reload the page and look for any obvious delays in the page life-cycle event handlers, particularly where you are accessing a database.
Also, use the Firefox Web Developer toolbar to obtain a friendly overview of the image file sizes and other static file sizes, CSS, JS, etc.
There are lots of questions and answers on ASP.NET performance here on Stackoverflow. Here's one of my previous answers and a quick search on the ASP.NET and Performance tags yields plenty of results.
What problems are you facing exactly?
I have a pretty big web site (asp.net web) and I have used JavaScript intensively (jquery,custom javascipt, etc) and also The theme and CSS. Right now I have a huge amount of js and css files in my system and I am thinking about minifying and smashing the js and css to improve the performance. So, please advice me the suitable tools and technologies to be used and please suggest me the best practices to be applied in these scenario.
There are a couple of things you could try to improve performance.
Enable GZIP
Enable 'Retail' attribute in machine.config
Enable Page Caching
I've listed the techniques we have used at our organisation to improve the performance of our web applications. With the exception of GZIP the other two probably won't have a direct effect on the JS and CSS files but will save you valuable loading time in other areas making your web site much faster.
We always see huge increases in speed and performance when the retail attribute is set to 'True' - all forms of debugging are disabled in this mode which makes the site more responsive.
Obviously you only want this setting on your live server.
If you're using jQuery, you should already be using the minified version on your production site.
For your own Javascript, there's Douglas Crockford's original minifier, or you could use the Microsoft Ajax Minifier, which you can add as an MSBuild task - there's an overview here.
There's a number of CSS minifiers referenced in the answers to this SO question.
Best practices are great but, at least in the case of performance, the question is more about the right practice. The only way to know is to:
Measure
Try
Measure Again
Compare/Contrast
It is almost always a trade-off with optimizing software. You have to consider how a change effects readability, scalability, security, deployment complexity, and probably a lot of other ity's I am not thinking of.
Having said all that the practices you are looking for are pretty much here.
To make my point though consider the rule Use a CDN. This seems like an obvious choice for something universal like jquery. You can use both MSFT and Google for this. You have the potential advantage of parallel download (depending up on the client browser) and the added possibility of already being in the client cache (from other site they may have visited). Plus they are likely serving it closer to the user than you are.
But the trade off to consider is that it is going to eat some bandwidth so if you are building something that is sitting in the Intranet, don't do this. You also introduce the possibility of failure from an external source. You can work around that by adding more code.
Perhaps most importantly though is that using a CDN is in direct contrast to the first rule, reduce HTTP requests. If you can combine and minimize all your js and load it more efficiently locally then you should do so. How do you know?
You have to:
Measure
Try
Measure Again
Compare/Contrast
Have fun!
I have a website which runs on IIS (Asp.net application, some of them are in dotnetnuke also) and we are expecting higher numbers of traffic on some of the sites, so we are planning to add a load-balancer, but before going to do that, we just want to know is it worth to do that? So, I want to know if is it possible to simulate load balancer, and how much performance gain they provide?
Check this 2 links
http://www.west-wind.com/WebLog/posts/4229.aspx
A few things that one always needs to remember when putting out a "site" that's on more than one server ("box")
http://www.hanselman.com/blog/LoadBalancingAndASPNET.aspx
I had 1/2 web application prepared. I had seen that the performance getting very slow when using the ajax control compare with using javascript but only when that is deployed on the server.
Why is this problem problem arriving when ajax controls used in application, performance sleeps & not opens the pages quickly.
What is the solution for this to improve performance when ajax control use & it deploy on the server.
Regards,
Girish
Yes.
Well, the reason it's slower when you deploy to the server is because the ajax requests now have to go over the entire internet. This is different compared to running locally, when the requests do not go over the internet.
How to speed it up?
Make less calls.
Return more things per call so you can make less in general
Return as little as possible, in a condensed format if possible
Consider enabling gzip on your server
other such things
Take a look at the improvements made for stackoverflow: https://blog.stackoverflow.com/2009/08/a-few-speed-improvements/
The other answers are good for general optimization, but I'm thinking there's an inherent problem with your understanding of the request flow in your application. For all intents and purposes, "ajax" is javascript.
The first and most important thing you can do is get Firefox and use firebug.
This will allow you to see what requests are made to the server, how long they take, and much, much more. This will give you a better understanding about the performance of the two different versions of your app.
You need to better understand your problem before we can really help you.
Consider using the ToolkitScriptManager instead of ScriptManager, it will merge all the requests for AJAX controls in a single request. This will increase the performance since there are less requests. Also, make sure that you have set the in the WebConfig when moving to the production server. When debug is set to true, the performance slows down dramatically.