Hi all! I've been working on some performance-related stuff today and figured I should post an update.
Firstly, I have to say that the new servers have been (from a corruption standpoint), rock-solid. That means we haven't been hard-crashing every 30 hours as a result of slow erosion of the database, nor have we been forced to recover a database off the slave server (YAY!)
However, our new servers are not without their gremlins. You may have noticed the site has been somewhat slow off and on, and even unresponsive at times. In fact, I hear Titania and her team are putting together a new Subeta Weather Bureau to try and forecast some of these lag storms. In the meantime though, I thought I'd explain what's going on.
Normally more powerful servers are a good thing. After all, faster servers should mean a faster site, right? As it turns out, not always.
One of the main measures of how fast servers are is how many processors ("cores") it has. Your average desktop or laptop computer has 1 or 2 cores. Subeta's database servers have 8 cores. More cores allows the server to do more things at once. Great, right?
Unfortunately, there can also be downsides to having more cores. To understand why, imagine this: let's say you have 2 people, and they're both getting their picture taken. So they play rock paper scissors to decide who gets to go first, and then they take turns posing for the camera. Everything's smooth.
Now let's say there are 8 people. Now they all start fighting amongst each other, trying to decide who gets to go first. In the meantime, no pictures are being taken.
The same thing happens with complicated programs (like a database) running on really powerful computers. Lots of cores means the database creates lots of different threads to take advantage of those cores, and the threads compete for resources. This doesn't always work so well: sometimes the threads end up fighting over resources like disk access and access to protected memory, and spend so much time fighting that no queries are being answered.
It's this effect that's been affecting Subeta off and on since we moved to the new servers. For some reason, the combination of resources and server capacity is past some critical level where it's actually slowing things down rather than providing a speed-up.
Unfortunately, MySQL is such a complicated program, there is no easy way to determine what combination of settings is causing these concurrency issues. It's a matter of tuning the server through trial-and-error to see what mitigates (and hopefully eventually eliminates) this effect.
If this explanation confuses you, a less accurate analogy is that of a car. At slow speeds, the car wheels grip the road and move the car forward. But if the driver puts his foot on the gas, the car's wheels can spin in place, spinning very quickly but not going anywhere. That's kind of what Subeta does when it locks up... mysql CPU usage climbs to 800% (100% x 8 cores) but actual use of the CPU to do work drops to a mere 4%, down from 30-40% normally.
Anyway, I hope that was understandable enough. The long and short of it is, we're working hard to track down what's causing the lag and get rid of it. And apart from the occasional lag storms, the new servers have proved to be 10 times as stable as we were before.
-Alex
Firstly, I have to say that the new servers have been (from a corruption standpoint), rock-solid. That means we haven't been hard-crashing every 30 hours as a result of slow erosion of the database, nor have we been forced to recover a database off the slave server (YAY!)
However, our new servers are not without their gremlins. You may have noticed the site has been somewhat slow off and on, and even unresponsive at times. In fact, I hear Titania and her team are putting together a new Subeta Weather Bureau to try and forecast some of these lag storms. In the meantime though, I thought I'd explain what's going on.
Normally more powerful servers are a good thing. After all, faster servers should mean a faster site, right? As it turns out, not always.
One of the main measures of how fast servers are is how many processors ("cores") it has. Your average desktop or laptop computer has 1 or 2 cores. Subeta's database servers have 8 cores. More cores allows the server to do more things at once. Great, right?
Unfortunately, there can also be downsides to having more cores. To understand why, imagine this: let's say you have 2 people, and they're both getting their picture taken. So they play rock paper scissors to decide who gets to go first, and then they take turns posing for the camera. Everything's smooth.
Now let's say there are 8 people. Now they all start fighting amongst each other, trying to decide who gets to go first. In the meantime, no pictures are being taken.
The same thing happens with complicated programs (like a database) running on really powerful computers. Lots of cores means the database creates lots of different threads to take advantage of those cores, and the threads compete for resources. This doesn't always work so well: sometimes the threads end up fighting over resources like disk access and access to protected memory, and spend so much time fighting that no queries are being answered.
It's this effect that's been affecting Subeta off and on since we moved to the new servers. For some reason, the combination of resources and server capacity is past some critical level where it's actually slowing things down rather than providing a speed-up.
Unfortunately, MySQL is such a complicated program, there is no easy way to determine what combination of settings is causing these concurrency issues. It's a matter of tuning the server through trial-and-error to see what mitigates (and hopefully eventually eliminates) this effect.
If this explanation confuses you, a less accurate analogy is that of a car. At slow speeds, the car wheels grip the road and move the car forward. But if the driver puts his foot on the gas, the car's wheels can spin in place, spinning very quickly but not going anywhere. That's kind of what Subeta does when it locks up... mysql CPU usage climbs to 800% (100% x 8 cores) but actual use of the CPU to do work drops to a mere 4%, down from 30-40% normally.
Anyway, I hope that was understandable enough. The long and short of it is, we're working hard to track down what's causing the lag and get rid of it. And apart from the occasional lag storms, the new servers have proved to be 10 times as stable as we were before.
-Alex
Posted by alx

Shugo974
DUMP CENTOS AND SWITCH TO UBUNTU 9.04 SEVER EDITION IT WONT CRASH NO MATTER HOW MANY CORES THE SEVER HAS!!!
That....made sense to me. Ok who are you and what have you done with my brain?
Well done anyway, though the crashes are annoying when in the middle of a quest >.<
Well done anyway, though the crashes are annoying when in the middle of a quest >.<

loves I know enough tech to know how much more complicated it probably is from the backend of it, so I adore your simple explanation... Managing to do that without having it sound like you're talking down? AMAZING!! Thank you!

Thanks for keeping us posted. As a bit of coder and computer worker myself, I understood what you meant without need for analogies. But it's very nice to see it put so that all of us, not just the computer literate, can comprehend what you mean.

Varicolored: The problem with overclocking is that it increases the risk of breaking (technically, burning) the CPU by overuse, and it's not the safest way to go when you're with a server in hands.
User not found:
Thank you for letting us know, it made sense to me! :]

Since the site moved I've not actually noticed much slowdown at all. Thanks for all your work, guys.

I've notice the lags but I always thought it was my computer <img src="http://images.subeta.net/smilies/6398_emoticon_raspberry.gif" border="0" /> Anyway thanks to keep us update!
So that's what made the site to terribly slow.. <img src="http://images.subeta.net/smilies/6398_emoticon_shocked.gif" border="0" />
I know my internet lagged, but typically not this much. Makes sense! :]
Thanks for keeping us out of the dark Alex. ^ ^
I know my internet lagged, but typically not this much. Makes sense! :]
Thanks for keeping us out of the dark Alex. ^ ^
That's why I chose to get a dual-core I can overclock (YAY unlocked multipliers!) instead of going for a quad. But I suppose with servers, it's not that easy. XD
Thanks for the update, Alex!
Thanks for the update, Alex!
XD i love how you guys explain everything, even if i don't have a clue to what you are saying, thanks
User not found:
thanks for the update!! <img src="http://images.subeta.net/smilies/6398_emoticon_heart.gif" border="0" /> <img src="http://images.subeta.net/smilies/6398_emoticon_smile.gif" border="0" />
You Doing A Great Job Alex. Thanks For Keeping Us In The Look And Explaining It To Us Who Don't Totally Understand The Ramifications Of Computers And Put Them In Laments Terms So We Can Understand What Is Going On.. Thanks!! <img src="http://images.subeta.net/smilies/6398_emoticon_smile.gif" border="0" />
Keep Up The Awesome Work Alex And All The Subeta Team!! <img src="http://images.subeta.net/smilies/6398_emoticon_smile.gif" border="0" />
Keep Up The Awesome Work Alex And All The Subeta Team!! <img src="http://images.subeta.net/smilies/6398_emoticon_smile.gif" border="0" />
You Doing A Great Job Alex. Thanks For Keeping Us In The Look And Explaining It To Us Who Don't Totally Understand The Ramifications Of Computers And Put Them In Laments Terms So We Can Understand What Is Going On.. Thanks!! <img src="http://images.subeta.net/smilies/6398_emoticon_smile.gif" border="0" />
Keep Up The Awesome Work Alex And All The Subeta Team!! <img src="http://images.subeta.net/smilies/6398_emoticon_smile.gif" border="0" />
Keep Up The Awesome Work Alex And All The Subeta Team!! <img src="http://images.subeta.net/smilies/6398_emoticon_smile.gif" border="0" />

Is it my imagination, or does the site start to have more problems with the appearance of the tan "Alert Bars"?
shout out to Znogirl, Alex's biggest fan
shout out to Znogirl, Alex's biggest fan

<b>Quote:</b><blockquote style="padding:5px; line-height:15px; background-color: #FAFFFF; border: 1px solid #000000; font-family: georgia; font-size: 10;">Are we ever going to get that "re-write" we were promised 1-2 years ago, you know, the one that would supposedly fix everything? Instead it seems more like problems are being 'patched' instead of completely fixed</blockquote>
I can answer that, if it was not done already.
There won't be one big recode. The site is being recoded slowly, part by part. The wardrobe was redone a while ago, and others parts of the site are in project.
The site will not change its coding overnight anymore. <img src="http://images.subeta.net/smilies/6398_emoticon_smile.gif" border="0" /> It will be a slow, but steady change.
I can answer that, if it was not done already.
There won't be one big recode. The site is being recoded slowly, part by part. The wardrobe was redone a while ago, and others parts of the site are in project.
The site will not change its coding overnight anymore. <img src="http://images.subeta.net/smilies/6398_emoticon_smile.gif" border="0" /> It will be a slow, but steady change.
Thank you Alex! <img src="http://images.subeta.net/smilies/6398_emoticon_grin.gif" border="0" /> Without you the site would've crumbled my now rofl
as long as you're making progress, I'll be happy. <img src="http://images.subeta.net/smilies/6398_emoticon_grin.gif" border="0" /> I would much rather have "lag storms" than the site going down every few days and wondering whether or not there will be a rollback and stuff. and thank you SO much for the updates. another site I go on -cough- is having issues too, not with servers but with other things, and they refuse to even acknowledge that there's a problem, much less inform us how to be safe and try to fix it. I really appreciate this and I'm so glad the new servers are working out! <img src="http://images.subeta.net/smilies/6398_emoticon_happy.gif" border="0" />
Thanks so much for the update! You guys must get about 2 hours sleep a night, working so hard. :0)
Thanks for the information and also the great explanation. <img src="http://images.subeta.net/smilies/6398_emoticon_grin.gif" border="0" />
It's nice to see such a close communication between the creators and users of the site. That's one of the things I really like about Subeta. <img src="http://images.subeta.net/smilies/6398_emoticon_heart.gif" border="0" />
Keep on the good work! <img src="http://images.subeta.net/smilies/6398_emoticon_wink.gif" border="0" />
It's nice to see such a close communication between the creators and users of the site. That's one of the things I really like about Subeta. <img src="http://images.subeta.net/smilies/6398_emoticon_heart.gif" border="0" />
Keep on the good work! <img src="http://images.subeta.net/smilies/6398_emoticon_wink.gif" border="0" />
oh my gosh you have been a busy bee great work and very much understandable .so much hard work and you never complain.
Thanks for the update <img src="http://images.subeta.net/smilies/6398_emoticon_smile.gif" border="0" />
User not found:
Subeta staff is awesome - thank you so much for your hard work!
I'm assuming me not understanding a word of that means you're working very hard. Thank you for working hard for us to enjoy the site to it's fullest. <img src="http://images.subeta.net/smilies/6398_emoticon_smile.gif" border="0" />
I just want to say how awesome it is that Alex explains things in terms most people can understand, while still providing the technical details as well.
so as i tried to say should i be afraid that made perfect seance without the car analogy.....i think i've been spending way to much time with my computer....i should go read a book and dumb back down to a normal lvl
should i be afraid that even without the car analogy that made perfect sence....i think i've spent way to much time around computers...i should go read a book >.<"
As always, it is great to know you guys are there, aware of our frustration (not to mention yours :/ ) and working to make subeta the happiest place on earth...hmmm...have heard that somewhere <img src="http://images.subeta.net/smilies/6398_emoticon_grin.gif" border="0" />

I totally do not understand 99% of what you wrote, but it's so very sweet of you to make the effort. I luff you.

Thanks for all your hard work! smooch <img src="http://images.subeta.net/smilies/6398_emoticon_happy.gif" border="0" />
User not found:
Thank you for spending some time to spill us some needed information.
We needed that, despite its long and daunting first impression. =]
Thanks again ~
We needed that, despite its long and daunting first impression. =]
Thanks again ~
I don't know much about computers and servers, but you make it all so understandable! Thanks for being awesome, Alex <img src="http://images.subeta.net/smilies/6398_emoticon_grin.gif" border="0" />
Alex = Awesome <img src="http://images.subeta.net/smilies/6398_emoticon_grin.gif" border="0" />
Alex is our hero <img src="http://images.subeta.net/smilies/6398_emoticon_grin.gif" border="0" /> Thanks for explaining it so well for everyone (:

I'd almost wonder if it's the kernel ? Just something makes me think about that, but it could also be that I've been listening ot friend discuss kernel compiling and scheduling and superpi for days now and it's all a muddle of what ?
Good luck.
Good luck.
Thank you for the update Alex, and for putting it into layman terms so that everyone can understand. <img src="http://images.subeta.net/smilies/6398_emoticon_smile.gif" border="0" />
Thanks for all your hard work Alex <img src="http://images.subeta.net/smilies/6398_emoticon_grin.gif" border="0" />
And thanks also for trying to break it down for us. Made a lot of sense to me, and that's an achievement <img src="http://images.subeta.net/smilies/6398_emoticon_wink.gif" border="0" /> really appreciate you keeping us in the loop <img src="http://images.subeta.net/smilies/6398_emoticon_smile.gif" border="0" />
And thanks also for trying to break it down for us. Made a lot of sense to me, and that's an achievement <img src="http://images.subeta.net/smilies/6398_emoticon_wink.gif" border="0" /> really appreciate you keeping us in the loop <img src="http://images.subeta.net/smilies/6398_emoticon_smile.gif" border="0" />
