Some thoughts on Media Temple

Some thoughts after 2.5 years of being with Media Temple. This is the opinion of a random person on the internet, so take it as such.

Media Temple is about resources, not performance

Media Temple is about resources, not performance. The (gs) service has never been speedy. Consistent, but never speedy. Kernel upgrades and hardware issues aside, the (gs) is never going to win any awards for performance. Resources are where they really stand out though. I’ve used as much as 1.66 TB of bandwidth and 500+ GPUs  in a billing cycle and I didn’t get overcharged for it. Perhaps they realized that it was in support of OSS, but who knows. Many of the hosts I’ve used over the years would have charged me significant amounts or kicked me off of their service for that. I agree with their stance that their (gs) service can absorb a lot of traffic. I’ve hit Digg and StumbleUpon a few times, and the service stayed up without a hitch.

Once you get over drooling on said resources though, you quickly realize that they can nickel and dime you to the poor house pretty quickly.

  • $20/month for the (gs) with 100GB of storage and 1TB of bandwidth
  • +$20/month for a mySQL container
  • +$20/month for a Django container
  • +$20/month for a RoR container

You wake up one day to realize that you can buy a WHM/cPanel virtual server, or even lightweight dedicated box, for that amount per month.

For comparison, Web Faction mid-high tier plan

  • $24.50/month for the ‘Shared 3′ plan with 40GB of storage and 1.8TB of bandwidth
  • mySQL
  • RoR
  • Zope/Plone
  • Pylons
  • Python 2.3, 2.4, & 2.5
  • Django
  • CherryPy
  • Turbo Gears
  • Mercurial
  • RoR
  • … all of the custom software, tweak custom compiles, and routing a developer could need without having to use a VPS or Dedicated server.

You’ve seen my comparison of performance. Now, is it going to survive a Digg, Slashdot, or Stumble? Who knows, but what are the chances of that happening again. If it doesn’t, I’m not that concerned. I’ll take a high performance, feature rich server over a 0.01% chance that it’ll get hit with a (what is essentially a DDoS) Slashdotting.

Performance is a feature

Media Temple marketing would be a failure if they tried to sell with a “slow, but steady” moniker on their service, but it really encapsulates what the (gs) is as a hosting service. Since I moved to Web Faction, I’ve had to resist the urge to drop into the (mt) forums and make a big deal about it. That desire comes from their insistence by them that my site gets a low grade from ySlow, so the performance problem is mine, not theirs. Use a CDN they said, add more compression, use less graphics, etc. I think the graph shows exactly how an identical setup compares apples to apples and is very damning of their opinion. Their finger pointing, while never missing a chance at an up-sell to a mySQL container, has left an accumilation of bad tastes in my mouth.

Speed is important to me, and Google seems to agree. I wrote my own browser start page application in WordPress awhile back and I see that page every time my browser starts. If I’m loading it 50 times per day and it takes six seconds, that’s 5 minutes of productivity that I’ve lost. That may not seem like a lot to some, but it’s very significant to me. Time is money, and (mt) is expensive in this manner.

Buzzword Compliant (or, why is the (gs) so slow)?

Short answer: It’s slow because of the resources.

(mt) originally used BlueArc servers as the Gen 1 (gs) storage hardware and it was a disaster. If I remember correctly, they were not planning on the transition to the Gen 2 storage platform until this year, but last years events accelerated that from “evaluation” to “emergency deployment” overnight. Storage is slow, especially on the scale the (mt) has it. They essentially created a hybrid of RAID 0/1/JBOD and attached it to the network on what I can only guess it at a huge scale. This is all well and good, but it makes your requests slow (as you’ve noticed!). Here’s my theory:

Let’s load a page from WordPress….

  1. Apache servers on Debian Linux take your http request that was routed to them by DNS
  2. Memcached tables locate the cluster and herd (segment, they are know internally has a herd) of your accounts
  3. Holding onto the request, it’s passed to the Sun storage server where the file is retrieved and executed.
  4. If mySQL is involved, then the request is passed through the intranet to either the SmartPool v2 or mySQL virtual machines.
    * Django and RoR containers are also symlinked to your account, but reside on separate physical hardware just like mySQL. Hence, those requests are even slower if they use the mySQL backend
  5. All of this gets passed back to Apache and served back to the client

The segmentation that is the strength of their resources is the Achilles heal of their performance. They have recently started a program to increase the amount of RAM on the SmartPool servers, but I think I bailed before getting a chance to benefit from any improvements there.

Not even the Magic 8 ball likes Microsoft. You shake it and it says ‘Outlook not so good’. (On the future of Media Temple)

Media Temple is always looking to the future. They have been beta testing Ubuntu bare (dv)s, a CDN system, OS X Server VPS, and other various products.  The (cs) or Cluster Server has been touted as the replacement for the instability and slow features of the (gs) for about as long as I’ve been a customer. I think it’s already here. While clusters 1 – 4 resolve via DNS to gridserver.net, clusters 5 and 6 resolve to clusterserver.net. It is my [unfounded and highly speculative] theory that the (cs) is a lie [ok, maybe not, but I’m a geek and a chance at using a meme rarely passes]. The (cs) has already been partially [mostly?] implemented and it’s a failure. It’s an small evolutionary step towards a better experience, but is not the silver bullet that (mt) hoped for, or in my opinion, needed.

Media Temple has a good thing going. They are highly successful in a field filled with hundreds of competitors that are indistinguishable from each other . They are where the ‘cool kids’ go to get hosted. They have built a certain buzz around there brand that few others have in that industry. C’mon, hosting is supposed to be a boring business. Hours of boredom punctuated with the occasional downtime. Somehow, they’ve got their ‘cool’ down to a science.

In the end, it doesn’t really matter (h/t to Linkin Park)

At the end of the day, I just want a host that I don’t have to think about. I’ve expended too much energy these last few years fighting with Media Temple (you should have heard some of my calls with the VPs, etc) about their products, trying to help other customers in the forum (there have been some ugly fights), and generally worrying about my sites. They’re fired. Time will tell if it continues, but I’ve put my 20+ sites onto Web Faction, I’m gonna get my billed paid automatically, and if I never have to think about them again, I’m okay with that. That’s the way it should be. Website hosting should be there when I want it, not because it needs me.

Update #1

Not long after I wrote this, I saw several more reports that the performance of the (gs) can vary wildly depending on which cluster you are on. Some (mt) customers we’re complaining about their segment when another user piped in that he had no problems with his cluster. Here’s my response to that:

Having a good experience as an (mt) customer should not have anything to do with being lucky enough to get on a particular cluster.

Update #2

Someone asked me “why does it seem like my site performance will be going fine, then have a few spikes of poor performance, then return to normal”.

My response:

I have a theory and will grasp for a good analogy. We’ll call it a “Q&A session”. Let us say that you are a speaker at a conference. In front of you is a group of 100 people, all wanting to ask you questions. So you can hear them, they move to the front of the room/pack. Once there, they can get your attention, ask a questions, and get a response. If they continue to ask questions, they will stay at the front of the room and continue to get them answered quickly. When they stop asking questions, they are slowly moved to the back of the room. If, after a time lapse, they decide to ask a question again, they must make their want back to the front of the room for you to hear them and answer the question. The trip from the back to the front takes time.

Now, as this relates to Media Temple. I’ve seen cases, especially with a mySQL container, where if my sites gets 0 traffic for a few hours, that first hit or two will take ~5-8 seconds (or longer), and subsequent hits will be < 1 second. This performance stays steady until the site stays idle for awhile and then “moves to the back of the room”. I’m not the only one, I’ve seen very similar complaints in the (mt) forum. It is almost as if the mySQL VM hibernates, not all that differently from your desktop/laptop.

See also: Goodbye Media Temple, hello Web Faction

Goodbye Media Temple, hello Web Faction

I’m ending my business relationship with Media Temple as a customer. Having been with them since August of 2007, I’ve endured a lot of problems with their Grid Service, and it never really got better, despite their promises. It got to the point that trying to contact customer service just ended up in the same canned responses over and over again. Never shying away from the opportunity at an up-sell, their mySQL container never alleviated the problems and wasn’t worth the extra $20/month on top of the $17/month that I was paying. At this point, their long promised (cs) or Cluster Server is vaporware. The replacement to the Grid Server is nowhere to be found. The current iteration of the Grid Server is unusable for it’s lack of speed (which their quick to blame the customer for) and instability.

SKFox.com performance on Web Faction versus Media Temple. Click for full size.

I think the graph above pretty well sums it up. Using my WordPress Latency Tracker, you  can see that all things being equal (identical WordPress installs, the only difference is the server), Web Faction is the clear performance winner. Note that the seconds scale on the left tops out at 0.7 seconds on Web Faction, while the Media Temple scale tops out at 50 seconds. I got the idea for, and created, the WP Latency Tracker plugin for the sole purpose of being able to give (mt) support something more tangible than just “it feels slower today”, and instead provide them with hard numbers. To be fair to (mt), those slow response times were during an system incident that lasted several days. However, slow downs like this were common on the Grid Server.

It wasn’t all bad. On the upside, they kept their promises of 1TB of bandwidth, which I used all of to act as a mirror for CDBurnerXP. Their user forums have a nice community feel to them, and their custom control panel is easy to use. I’ll miss those.

A co-worker mentioned Web Faction to me. I’ve been keeping an ear to the ground for a replacement of Media Temple, but really wanted some far out features  like support for Pylons, Django (Media Temple support this too, but only with a container which adds another $20/month to your bill), and custom compiled software. I signed up for an account and have been amazed at the ease of the transition and the performance.

Web Faction costs me $9.50/month. I was paying, at times, up to $37/month at (mt) for their (gs) and mySQL container. I never saw numbers like this, ever. On top of that, I don’t have to pay $20/month for Django, and can install/compile custom apps to my hearts content on Web Faction. They are a developers dream as far as the feature set they bring to their hosting products.

One of these days, maybe Media Temple can live up to their own hype.

See also: Some thoughts on Media Temple

How ironic

From an MSNBC article: Alan Wilson, son of Representative Joe Wilson, on recent comments by President Carter:

“It’s unfortunate people make that jump. People can disagree — and appropriately disagree — on issues of substance, but when they make the jump to race it’s absolutely ludicrous. My brothers and I were raised by our parents to respect everyone regardless of background or race.”

Emphasis mine. Submitted without further comment.

I hate IE

Submitted to me by Anonymous, an excellent rant about Internet Explorer.

Turning on a cell’s borders on mouseover should be easy, right? You should be able to give the cell a class, like “selected” and in your CSS specify that td.selected has borders. Then on mouseover, you can add the selected class to the cell.

Except that everything jiggles around. No one wants that – but wait, just give all the other cells a 1px border of “none”, right? Or “transparent” color? Sorry, no luck. IE won’t let it work (to be fair, I’m not sure if FF will either). So you’re resigned to setting the other cells borders to the background-color. It feels dirty, but at least it works.

Actually, it doesn’t. You see, the browser can’t read your mind, it doesn’t know which borders take priority. Enter the border conflict resolution spec, a beautiful piece by the W3C. Just give the background-colored borders a lower-priority style (dashed or dotted) and the solid borders will override them!

Except in IE. Because IE hasn’t bothered to finish implementing the border conflict resolution spec. No, I’m not talking about IE6 – this is broken in IE7. And it appears to still be broken in IE8. So I had to resort to a browser-specific javascript hack that adds a new “prevSelected” class to the cell before the selected cell – just to make IE happy.

And no, “border-collapse: separate” didn’t work as a work-around because the corner pixels showed through.

</rant>

Well said Anonymous, +5 insightful.