Пару речей приходять на думку.
Кеш-код опкоду - це завжди хороша ідея. Я віддаю перевагу http://eaccelerator.net/ над APC. Якщо ви не розробляли APC по дорозі, намагаючись додати його, майже завжди боляче. Еакселератор, хоча і не такий фантазійний, здається, працює.
Зворотний проксі - також хороша ідея, але вам потрібно спостерігати за використанням оперативної пам'яті. Я знаходжу Apache 2.2 з mpm-працівником, щоб самостійно зайняти неабияку кількість оперативної пам'яті. У вашому випадку я рекомендую щось легше, як Nginx і запускати Apache з PHP як FASTCGI або просто залишити його відповідно до процесу. Ідея використання Varnish, Squid, Nginx тощо полягає в тому, щоб вони обслуговували статичний контент, працювали з підключеннями користувачів і передавали лише PHP-запити Apache, які ви розглядаєте як сервер додатків.
Якщо ви працюєте з досить недавньою версією Mysql 5.1, як-от принаймні 5.1.24, тепер у вас є доступ до нижчих секундних повільних журналів. Я б почав long_query_time з 1 або 2, а потім знизити його до 0,5, коли ви отримаєте ручку на дійсно довгі. Також в мережі є багато загальної інформації про настройку для Mysql, але оперативної пам'яті у вас немає, щоб зробити багато. Чи збільшили ви будь-який з параметрів за замовчуванням? Більшість файлів my.cnf налаштовані на використання близько 64 Мб оперативної пам’яті. Я, щонайменше, я підніс буфер key_buffer з 16MB до 64MB.
Додатково ви використовуєте таблиці Myisam або Innodb? Якщо ви ведете сеанс у БД, вам потрібно змінити таблицю сеансу на Innodb (або зробити її замість файлу cookie), а не залишити її таблицею Mysiam, яка робить блокування рівня таблиці, а не блокування рівня рядків. В основному будь-яка таблиця, яка записує більше 20% до 80% читань, є кандидатом на перехід до Innodb. Пам’ятайте, що вам потрібно буде збалансувати об'єм оперативної пам’яті між таблицями Myisam та таблицями Innodb, оскільки буфери для кожного налаштовані окремо.
І нарешті, ще 512 Мб оперативної пам’яті пройдуть довгий шлях у ваших налаштуваннях або навіть інший 512 МБ VPS для запуску Mysql, якщо це дешевше або приблизно однакова ціна. Я насправді схиляюся до другої інстанції, тому що це подвоїть доступний IO диска. Однією з проблем із серверами VPS є те, що ваш IO не захищений від інших людей на тому ж фізичному сервері.
Хммм, мій пост всілякі розсіяні, але дають вам багато місця для пошуку. Удачі.