Archive for July, 2009

Shared Hosting CPU Protection Is Here!!!

Sunday, July 26th, 2009

I have been promising CPU protection for a long time and its finally ready.  It has been running on several servers during our live beta testing and it has proven itself to be extremely successful.  For those that need the brief rundown again this is what this feature will provide.

1) Guaranteed CPU resources for every user on every server.
2) Protection from heavy users.  No longer can a single user, or a small group of users consume inordinate amount of resources causing your own site to fail to load or load slowly (NO OTHER SHARED HOST ON THE PLANET CAN SAY THIS WITH ANY VALIDITY – WE ARE THE ONLY HOST THAT HAS THIS TECHNOLOGY AT THIS TIME!)
3) Extremely sensitive CPU resource allocation – CPU time is calculated in 200 millisecond increments.  This means our servers will always respond quickly and users won’t be exposed to slowness due to sudden bursts of CPU usage.
4) CPU Statistics – We can now tell you exactly how much CPU you have been using each 24 hour period.  More importantly, we can tell you how often your domain was throttled or capped if your site experiences “bursty” CPU usage.  No more guessing on what you are using, now we will tell you exactly.
5) Users can see IN REAL TIME if their account is being throttled for any reason.
6) Users can see IN REAL TIME exactly what processes they are running that put them over the CPU limit.
7) NO MORE CPU QUOTA EXCEEDED ERRORS EVER!!!! (Starting on Tues July 29th 2009)  We will be completely removing the code that bans users for CPU overages!!
8) Processes will no longer ever be killed or stopped because of too many cpu resources.  Instead, your site will simply bump up against any cpu limits that we put in place.  This will work just like a VPS or dedicated server, but without the high cost!
9) Now able to sell “dedicated” cpu resources (Actually its not in our shopping cart yet, but the technology is there so give us a couple of weeks to build out the site for it).  Now you can purchase an entire core of CPU and get speeds FAR FASTER than a dedicated server for 30-40% less.
10) Ability to purchase instant CPU upgrades.  If you decide you need double the CPU that you currently use we will be able to do that for you without you having to deal with the maintenance and headache of a VPS or dedicated server.  FINALLY!
11) ALWAYS have some idle CPU resources available to service incoming requests.  We will never allow the general pool of CPU usage to become saturated so that no resources are available to service requests.  Again, no other shared hosting service in the world that I know of has this technology.
12) FREE – FREE – FREE – There is no cost at all for this feature.  The only cost would be for those users that want higher dedicated cpu resources.  We will most likely offer 3 different choices in that regard.  Mostly likely we will sell CPU in increments from 50% of a single core (CPU), up to as many as 4 cores of dedicated resources in a shared hosting environment.  This has all the benefits and cost savings of a shared server system with the performance of high end dedicated servers.

We are willing to license this solution to a minimal group (At least for the first 60 days) of other Cpanel hosts if you are interested.  The general cost would be $125 per 8 core server for 12 months.  The cost is $75 for 12 months if using a 4 core server.  This solution does work on dual core systems but is designed to be most efficient with more cores.  This cost would include our disk I/O throttling solution as well (Well discussed in previous blog entries of mine).  You can FULLY EXPECT to double your user density with MUCH better speeds for your customers with these two solutions in place.  This is not marketing hype or extreme case situations.  It really works that well.

Requirements for hosts that want to use this product –

1) Must use linux with a 2.6.28 kernel or newer (Sorry, backporting beyond 2.6.28 is a nightmare!)
2) Must be willing to apply a small kernel patch (Wish there was a way around this, but we do have to modify the kernel to make the magic happen!)  We will assist with applying the patch if there are any problems.
3) Must be willing to run two binary files that we will provide – cpud (Our cpu controller) and iothrottled (Our disk i/o bandwidth, iops) manager.  We will make the source available for eview once we have the legal issues on our end taken care of, but for now it is two binaries.
4) The CPU controller (Once the kernel portion is done) takes about 5 minutes to set up, literally!! And iothrottled takes about 10 minutes to setup and configure.
5) Must trust that Bluehost/Hostmosnter would actually sell a product to everyone else to compete with ourselves :)

If you are interested in licensing it or testing it out (Must be at least 10 servers or more if you want to test it out before buying at this time) then please email me directly with your contact information at matt@bluehost.com.

Thanks,
Matt Heaton / President Bluehost.com

Palm vs Apple (iTunes Analysis That No One Else Is Talking About)

Friday, July 24th, 2009

As the smartphone market increases and Apple gobbles up market share from its competitors what can smaller companies do to compete?

First, copy the good aspects of the product you are trying to compete against.  Next, improve your product in the areas that your competitors are deficient, and finally,  if you are smaller and more nimble you lower your price.  You lower the price because you are too small for the big boys to adjust their pricing in contrast to you.

This is exactly what Palm is trying to do with the Palm Pre smartphone.  Its a very good first try, and I think the phone has great potential, but right now its not up to snuff when compared to the iphone.  However,  Palm is doing something that I think Apple is very scared about.

The Palm Pre is (Sometimes) compatible with iTunes.  Apple doesn’t open iTunes to outside devices, so syncing doesn’t work on anything except Apple Ipods/Touches/Iphones, etc.  The Palm Pre masquerades as an older Ipod in order to sync with iTunes.

When the Palm Pre launched it worked great with iTunes, then about a week ago Apple released a “fix” for iTunes that broke compatibility with the Pre.  Palm has since released version 1.10 of webOS that has a fix for the fix that broke compatibility.  I suspect Apple and Palm will play this cat and mouse game for a while, but here is the part that almost no one is talking about –

Apple is scared to death to sue Palm and here’s why – If Apple sues Palm and loses they just don’t lose to Palm, they lose to everyone.  Right now the issue is still on legal quicksand.  There is all kinds of legal precedent that backs up Palm’s reverse engineering of the hooks into iTunes.  Many larger companies are too afraid of the legal implications of tangling with Apple, but Palm is a cornered beast.  They really don’t have a lot to lose, and Apple has everything to lose.  Palm knows this.  If Apple sues and loses be prepared for a tidal wave of “ipods” (Every smartphone, mp3 player, and modified 1985 walkman) connecting to iTunes in a matter of weeks.

There is nothing “technical” holding back devices from connecting to iTunes, its all legal threats keeping devices off right now.  I suspect in the end that Apple will “decide” (be forced) to license devices to iTunes rather than risk losing the lawsuit and getting no license fees.

I’m a HUGE Apple fan, but I’m totally rooting for Palm on this one!!!

Matt Heaton / President Bluehost.com

Virtual Memory – The Swap Problem

Wednesday, July 22nd, 2009

In my quest for the most efficient server environment that I can create I have spent a good portion of my life drilling down to the lowest levels of the linux kernel.  This helps to me better understand how to make use of and in some cases limit cpu and I/O usage to make the server perform well.  One very important aspect of server performance is virtual memory.

Virtual memory is memory is that stored on a disk of some sort that acts as main system memory.  So if your machine has 16 gigs of memory, and you have 16 gigs of swap space (virtual memory), then your server can operate as if it has 32 gigs of main system memory.  Virtual memory/swap space has been used for decades as a way for machines to accomplish more than what they were originally built to handle, and for the most part its worked well.  The problem is that it is SLOW.  A traditional spindle/platter based disk has access times (Think flipping through a phone book to look up a name) that is anywhere from 700x to 2500x slower than normal system memory.  Thats a problem if you have a server that uses swap a lot.

There is a lot more to the swap debate than what I mention above, and there are many articles written that could explain its benefits and detriments much better than I ever could.  I am writing about swap today to outline some changes that I think would greatly benefit how swap works in a multiuser environment (Shared hosting).

Since swap capabilities have generally not changed in 25 years it would be nice if someone could take a 2nd look at the feature set and update with features to benefit todays users.  Here are a few of my proposals.

1) Ability to swap based on a specific uid or gid (user id, or group id).  On a shared user platform some users dominate the memory usage.  While you can control memory usage for a certain user you can’t control the swappiness of certain users.  It would be great for “greedy” memory users to still be able to use swap, but have those specific users also endure the speed penalties that increased memory usage requires.  This would be GREAT to have!

2) Ability to swap by pid/tid (Process ID, and thread ID) – Some programs lend themselves to swapping while other don’t.  If I could specify certain apps to swap more aggressively than others I could fine tune the system to work better.  I know better than the kernel the performance I need from each application.  Let me use that knowledge to tweak virtual memory usage by pid/tid.

3) Ability to NOT swap by pid/tid – Just as I  stated above that I need to be able to increase the swappiness of certain applications, I also need the ability to exclude certain apps from swapping unless it is absolutely necessary.  MySQL is a good example of this.  I don’t want it swapping at all.  Not even a little bit.  I sure wish I could turn it off for this app!

4) Time based reporting for swap usage.  Everyone knows that swap usage is slow, but HOW SLOW?  What is the average time in milliseconds to swap out and swap in memory for the app you are using?  How many milliseconds per page in the last 1,5,15,30 seconds etc.  How overloaded or underloaded is the swap device?  Are the seeks killing the swap device?  Time to switch to an SSD for swap? How many pages are being swapped out or in for a specific app or uid.

5) Swap priorities for devices based on performance.  You can specify multiple swap partitions/files if you like currently.  However you have to set the priority for those devices when swap is activated.  Swap out and swap in functions should be able to be set based on response time of swap devices.  If a single swap device is getting crushed, but you have multiple devices why not use the other one to mitigate the slowness of the first swap device.  This is NOT as simple as round robin type load balancing of swap devices.  It needs to be intelligent and use devices based on response time in milliseconds.  It should also be able to split pages for specific apps across multiple swap devices (If you desire) so that swap in is faster (Similar to raid 5 setup).

Swap algorithms are too simple for a time that is long gone in todays computing environment.  Get rid of all the global settings, and give us some fine tuned options to make swap perform at the level we need it to be.  If there are any coding Santa Clauses out there please put an updated virtual memory manager in my virtual stocking!

If you think I am wrong on these swap issues please send your replies to “to_be_deleted@bluehost.com” :)

Thanks,
Matt Heaton / President Bluehost.com

So long to America…

Tuesday, July 21st, 2009

I have really been thinking a lot lately about America and what it stands for and represents.  As I listen and watch and participate in my community I can’t help but believe our country has already gone down a path that it can never recover from.  Simultaneously, I realize that many in this country believe that America is finally progressing in a direction that is acceptable to them.  I respect that opinion.

What I can’t respect is what I believe to be almost total ignorance and apathy by the majority of the population in America.  This may seem extremely presumptuous and arrogant on my part, but this is my experience.  Let me give some examples and then you can tell me where I am wrong.  I have had several discussions with associates, friends, and family about recent political issues.  Some of these include cap-and-trade, the deficit, the bailouts, health care reform, etc.  I am astounded at the almost total lack of understanding of these extremely important issues.

This “rant” isn’t about Republican vs Democrats at all.  It is about understanding the issues.  When I talk with someone about cap-and-trade I will ask the simple question – What is cap-and-trade?  What is its purpose?  How will this affect you and why do you feel it will affect you in this way?  I get blank stares.  Sometimes I get talking points from differing political party’s rhetoric of the day.  What I rarely get is a sensible, well thought out response.  I think that is sad.  I believe our country has an incurable case of A.D.D. where we take our political cues from a 30 second sound bite on the way home from work.  Real understanding of issues and responsibility to vote our desires BASED ON UNDERSTANDING is diminished to the point of no return.  We are a society that votes based on who markets themselves the best, or if a person is in a certain party.  What happened to understanding the issues.

If you can’t answer the following questions with a modicum of accuracy then why are you voting for someone that will make these decisions for you?

What is cap-and-trade?  Why will it hurt the economy, or why don’t you think it will hurt the economy?

What is our national debt now?  What is it projected to be in 2,5,10 years?  How does this affect you?  Why is being in debt a bad thing? (I am completely floored by the lack of solid answer to this question in particular).  No wonder no one cares if government spends our way to bankruptcy.  Almost no one understands what this really means for our country.

What is the difference between spending and investing in America?  What is our current administration doing?  Is our fiscal policy sustainable?  Why or why not?  If not, then why are we pursuing that course?

How does debt and monetary policy affect the dollar and inflation, and why is this SUPER important.  Again, almost no one can answer these basic questions.

What will be the result of the current health care reform bill on privatized institutions?

Who are your Senators/Congressman?  What are their stances on these issues?

How will increasing or decreasing taxes affect you directly?  Is history on your side?  What administrations supported your belief and were successful?  What are the parallels from today and the past?

The questions go on and on – social issues, financial issues, political issues, foreign policy, trade, etc, etc etc.

So many citizens of this great country have given up so much to give us the freedom to make choices to take this country in whatever direction we want.  We need to at least have the fortitude to understand the consequences of our actions and vote accordingly.  Everyone has opinions.  I don’t care which side of the argument you fall on, but PLEASE pick a side based on research and understanding, not party line talking points.  I hope America can reverse its trend of ignorance and apathy, but there is little proof to give me hope.

Matt Heaton / Bluehost.com