O Magento e o Zend Framework são muito pesados para a CPU, como você percebeu. A melhor maneira de evitar a carga da CPU é simplesmente renderizar qualquer conteúdo apenas uma vez, até que ele seja alterado. A maioria das partes do seu catálogo não muda com frequência e, muitas vezes, apenas o bloco do carrinho de compras na sua página ou o bloco "itens mais populares" são as únicas partes dinâmicas.
Sugiro colocar um cache Varnish na frente do Apache. Isso oferece um cache de página de alto desempenho que pode descarregar seriamente sua pilha LAMP. Recentemente, sobrevivemos a um lançamento muito público de um site graças ao Verniz e fiquei seriamente impressionado com a velocidade e baixa carga da CPU. O verniz é gratuito e flexível o suficiente para armazenar em cache páginas inteiras ou armazenar em cache somente as partes relativamente estáticas e incluir o carrinho dinamicamente.
No entanto, o Varnish não armazenará muito cache em uma instalação padrão do Magento, já que há muito conteúdo dinâmico por usuário, cookies, etc. Um módulo Magento como ' O PageCache powered by Varnish 'modifica o Magento para funcionar bem com o Varnish. Ele também fornece um arquivo de configuração do Varnish que combina com a configuração do Magento. Estes dois juntos formam uma configuração muito eficiente. É um módulo comercial, mas muito mais acessível do que um servidor mais poderoso seria.
As peças que você descarrega em um CDN ou Nginx não são seu verdadeiro problema, embora ajude. Até mesmo o Apache pode lidar com um grande número de solicitações estáticas. Você precisa armazenar em cache as coisas que exigem esforço para gerar de novo e de novo, ou seja, suas partes dinâmicas.