|
CP seems to be as snappy as it was pre-conversion. Fasterfox is reporting < 3 seconds for loading most pages. Can you give us any details on what changes you made to improve performance?
|
|
|
|
|
Thanks Hans.
The complete rundown would take pages to go through but here's the basic outline of how things went post upgrade:
0. Tested, tested and tested and were convinced we would be faster than the previous version by sizeable amount.
1. Release. There was much wailing and gnashing of teeth.
2. Anything vaguely non-critical was turned off. Member searches, article filtering by attribute, the 'number of articles found' totals, even the number of articles and members on the homepage. Result: Site was usable again and was (mostly) as quick as it is now though there were still occasions when pages hung and timed out.
3. Caching was aggressively pursued but there was a limit to what we could cache and what had to be realtime. Result: Site was faster overall with less timeouts.
4. All stored procedures were then gone over, again, with a fine tooth comb. Further optimisations were found, some approximations were made in some of the queries that didn't need. Some lock contentions were spotted and fixed. Some functionality that had been limited was reinstated. Result: Database load was reduced slightly (things were already very well tuned) and there were less 'log-jam' events where requests outpaced the capacity to serve those requests.
5. Databases were partitioned vertically and some load balancing done to determine which peices of functionality should be split onto which DB servers. Result: initial visits (first page view) sometimes took 15 seconds at peak load time. This was reduced to usually no more than a few seconds.
6. Further caching based on the results we witness after Google rampaged through the site at 60,000 page views in about 10 minutes. On top of this functionality was modified so that aggressive bots and spiders would not bring the site to its knees. Result: nice increase in first page view speed.
The main killers were errors and new version releases.
1. Errors meant the site simply didn't function, or that the processing of errors when something went wrong in turn caused massive slowdowns as the code hunted around trying to find the next best course of action. We have a very flexible system which means our errors can be a royal pain to find, but we think we have this mostly under control
2. We were releasing new versions of the code multiple times a day up until a couple of weeks ago. Sometimes this was no more than just a spelling mistake, some broken javascript or a formatting error. Sometimes it was a revamp of a major peice of infrastructure. The problem we find is that a new release can cause a massive deadlock as all the webservers when they try serve all requests that had built up while they recompiled while also recaching the data they keep on hand. Updating a single server will cause an outage of a few seconds. Updating them all at once can cause 5 - 10 mins of downtime.
Outages are a weird thing in that you can visit the site 10 times and read a page and then forget you ever visited, but then you try and visit during an update and you will remember that 5 minute outage for the rest of the day. It was at the point where I could tell the size of my inbox by the number of updates we'd done that day.
For now, though, we're down to 2-3 updates a week as we fix bugs, add new features and continue working on expanding capacity. I'm in Australia for a couple of weeks on family matters which means I can do updates when most of our visitors are safely offline.
3. SQL issues. SQL Server was crashing a lot, especially after we released new code on the web servers. We talked to Microsoft and found that reducing the amount of memory we allowed SQL to use fixed this. Yes, we think this is ridiculous, too.
We have two major improvements to make:
1. Turning on our database load balancing system. We're looking at a 33% increase in write capability, and hopefully somewhere in the vicinity of 40%+ speed increase in reads. Stage 2 of this will increase this significantly and may be combined with a hardware upgrade
2. Some cleverness in our attribute matching system that drives all content display. This should bring significant speed improvements
At the moment we are database limited and have not paid too much attention to web application object creation and GC issues. Once (if) we see these being an issue we'll tackle them, but for the moment we're being thrifty with our use of development time.
cheers,
Chris Maunder
CodeProject.com : C++ MVP
|
|
|
|
|
Wow! That was a hard trail!
|
|
|
|
|
Thanks for updating the current bug list.
Here's a previously reported bug that's not listed: all the MFC listctrl articles are still listed under Combo & List Boxes instead of under List Controls.
|
|
|
|
|
This is part of a bigger project to move a bunch of articles that are currently misplaced.
cheers,
Chris Maunder
CodeProject.com : C++ MVP
|
|
|
|
|
Articles that do not have a license show the Apply License UI at the bottom. But when you try to apply a license it gives the following error :-
Not enough information was supplied in order to display this page
|
|
|
|
|
[Update]
Using "Modify", I went through the editor wizard and managed to set the license. But if the other one worked, that'd be much nicer - since it's a 1-step process.
|
|
|
|
|
I just tried this and it worked for both of my articles that didn't have a license yet. These were officially published articles (ie, not in the unedited section).
Scott.
—In just two days, tomorrow will be yesterday.
—Hey, hey, hey. Don't be mean. We don't have to be mean because, remember, no matter where you go, there you are. - Buckaroo Banzai
[ Forum Guidelines] [ Articles] [ Blog]
|
|
|
|
|
Scott Dorman wrote: These were officially published articles (ie, not in the unedited section).
Mine are all in the right sections too (means not unedited). So I don't think that's it.
|
|
|
|
|
Sri Lanka's time zone is UTC + 5:30, and not UTC + 6:00 as provided in the settings page.
Cheers,
Vikram.
Zeppelin's law: In any Soapbox discussion involving Stan Shannon, the probability of the term "leftist" or "Marxist" appearing approaches 1 monotonically.
Harris' addendum: I think you meant "monotonously".
Martin's second addendum: Jeffersonian... I think that should at least get a mention.
|
|
|
|
|
An easy bug - yay!
(fixed)
cheers,
Chris Maunder
CodeProject.com : C++ MVP
|
|
|
|
|
Well, in addition to the temporal ones, there are some territorial issues as well - for instance, Serbia and Montenegro are separate countries. I only gave it half a glance; a second look may turn up more issues.
On an entirely unrelated note, Chris - Egads! Shouldn't you be asleep now? Or are you in Aussie land again?
Cheers,
Vikram.
Zeppelin's law: In any Soapbox discussion involving Stan Shannon, the probability of the term "leftist" or "Marxist" appearing approaches 1 monotonically.
Harris' addendum: I think you meant "monotonously".
Martin's second addendum: Jeffersonian... I think that should at least get a mention.
|
|
|
|
|
Vikram A Punathambekar wrote: Serbia and Montenegro are separate countries
Serbia and Montenegro should be removed from the list, as well as Yugoslavia. Currently on the list we have:
- Yugoslavia
- Serbia and Montenegro
- Serbia
- Montenegro
And by the way, Chris can you update Serbian flag, please. I just don't like that empty square on my profile page.
Mostly, when you see programmers, they aren't doing anything. One of the attractive things about programmers is that you cannot tell whether or not they are working simply by looking at them. Very often they're sitting there seemingly drinking coffee and gossiping, or just staring into space. What the programmer is trying to do is get a handle on all the individual and unrelated ideas that are scampering around in his head. (Charles M Strauss)
|
|
|
|
|
Ah, I only glanced at it.
You may want to reply to Chris about this - that way, he'll get the notification.
Cheers,
Vikram.
Zeppelin's law: In any Soapbox discussion involving Stan Shannon, the probability of the term "leftist" or "Marxist" appearing approaches 1 monotonically.
Harris' addendum: I think you meant "monotonously".
Martin's second addendum: Jeffersonian... I think that should at least get a mention.
|
|
|
|
|
Chris is omnipresent being, but not only that it appears that he is omnipotent, too. He fixed the problem.
Mostly, when you see programmers, they aren't doing anything. One of the attractive things about programmers is that you cannot tell whether or not they are working simply by looking at them. Very often they're sitting there seemingly drinking coffee and gossiping, or just staring into space. What the programmer is trying to do is get a handle on all the individual and unrelated ideas that are scampering around in his head. (Charles M Strauss)
|
|
|
|
|
Chris Maunder wrote: An easy bug - yay!
Moving an island over a distance of more than a thousand miles got easy now?
Luc Pattyn [Forum Guidelines] [My Articles]
This month's tips:
- before you ask a question here, search CodeProject, then Google;
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get;
- use PRE tags to preserve formatting when showing multi-line code snippets.
|
|
|
|
|
Vikram A Punathambekar wrote: Sri Lanka's time zone is UTC + 5:30,
Most Americans find the :30 part surprising. That's when I tell them Nepal is UTC + 5:45 That really freaks them out!
Someday I might buy my own island and ask for an even odder time zone, maybe UTC + 2:37 or something like that.
|
|
|
|
|
Hi All/Chris,
Previously (before the site migration), a hyperlink in an article such as 'SelfHealing.asp' (without the http://...) would direct to the 'Nearest Match' page. The page would offer up a link to a best guess.
Now the link is translated to http://www.codeproject.com/useritems/SelfHealing.asp[^], which results in a Page Not Found.
Perhaps adding the ASPX extension in lieu of the ASP extension would help the redirection?
Jeff
|
|
|
|
|
Added to the bug list
cheers,
Chris Maunder
CodeProject.com : C++ MVP
|
|
|
|
|
Hi Chris,
Chris Maunder wrote: Added to the bug list
Sorry about this one. It was due to me trying to figure out a way to harden an article's links to relocation once an editor takes control.
It's amazing how much I can monkey up the works at times
Jeff
|
|
|
|
|
Hi All\Chris,
When I make a comment to an article, I like to say a small hello. (A bonus is when there's a real name and not just a handle).
I find when I click 'New Message', I did not make a note of the author's name. So I go back, make a note, and then begin typing (again). This is obviously a defficiency on the keyboard operator.
It would be nice if the New Message page included the article name and author.
Jeff
|
|
|
|
|
Added to the TODO list
cheers,
Chris Maunder
CodeProject.com : C++ MVP
|
|
|
|
|
|
void sort()
{
sort(v);
}
void sort()
{
sort(v);
}
Maxwell Chen
|
|
|
|
|
Wait... i always thought they where? I must have just been lucky all this time never to end up with a smiley.
My current favourite word is: Nipple!
-SK Genius
|
|
|
|