I'm currently responsible for running, modifying, and tuning a Magento installation. I'm not satisfied with our current hosting plan, and I'm looking for alternatives. I see several hosting providers that advertise that they optimize their servers for Magento (e.g. Nexcess, MageMojo), but they all seem to be short on technical details. What does one do to a server to optimize it for Magento that is different from optimizing for any other heavyweight PHP/MySQL application?
My current understanding is that because of its EAV data model and its massive XML configuration files, Magento performance is almost always I/O-bound - but my understanding is that that's true for most other PHP/MySQL applications at scale. RAM and cores are cheaper than SSD space, basically.
How can I tell whether these "optimizations" are worth the premium that Magento-oriented hosting providers charge? Is there a technical basis to the claim of "optimization" or is optimizing for Magento the same as optimizing for performance on any other PHP/MySQL application?
Note: since this question brushes up against the site's guidelines, let's be clear on a couple of things:
- a correct answer would say "no, Magento is not an unusual PHP/MySQL application, scaling it to 10,000 users is only trivially different from scaling Drupal, WordPress, or Joomla! to that level" or "yes, Magento has the following characteristics which require the application of non-trivial config changes, optimization techniques, or server tuning, that you would use for no other PHP/MySQL application." So there does exist a definitive correct answer to this question.
- I don't plan on actually implementing such tuning myself: if I did, I'd probably ask Server Fault. I'm asking about Magento's guts, I'm asking about why it performs the way it does and asking for comparisons to the internals of similar apps, so I'm asking Stack Overflow.