направление, в котором работать
- Определите, какую нагрузку вы хотели бы выдерживать. Если не статистических данных, сделайте educated guess / ткните пальцем в небо. Без конкретной цифры любая работа теряет вектор и становится неэффективной.
- Определите, какую нагрузку вы выдерживаете сейчас. Это то, что предложил ffosters.
- Если второе число больше первого - вы победили.
- Если реальная пропускная способность меньше желаемой, определите самое узкое место. Что создаёт наибольший процент тормозов? Слабый процессор, малое количество памяти, медленный диск, неоптимальные запросы к БД, запросы на внешние ресурсы, отсутствие кеширования в критичных местах, простые ошибки - всё это ваши вероятные противники.
- Опрелелив узкое место, оптимизируйте его и возвращайтесь к предыдущему пункту. И так до тех пор, пока не станете держать желаемую нагрузку.
- Ну и в качестве вишенки на торте - не стесняйтесь убирать на время ожидаемой нагрузки второстепенный функционал. Хорошо работающий сайт с основными функциями намного полезнее и для вас и для клиентов, чем лежащие свистелки.
Если для вас это сложно, а проект действительно важный (так и есть, раз запускается реклама), обратитесь за помощью к профессионалам. По железу мы обращались за консультацией к ребятам во
flant.ru. Не всё было гладко, но ощутимую пользу они принесли. По коду они нам не очень помогли, потому что на больших проектах человек со стороны, да ещё и без личного присутсвия рядом с программистами, мало что поймёт.
Скакание между серверами - как правило деньги на ветер, если только проблема действительно не в железе. По опыту, такое бывает нечасто и определяется на первом же нагрузочном тесте.