Вы должны профилировать приложение для начала и выяснить, где узкие места - если это PHP, использование чего-то вроде xdebug было бы хорошим началом. Возможно, вы тратите много времени на сериализацию данных или общение с базой данных, поэтому, возможно, кеширование с помощью Memcached может помочь.
Во-вторых, если вы используете MySQL, включите медленный журнал запросов MySQL (log_slow_queries в my.cnf); это может быть использовано, чтобы дать вам представление о том, каковы дорогостоящие запросы к базе данных, и как только вы узнаете, что можете настроить их с помощью EXPLAIN <>, как уже упоминалось. Может случиться так, что вам просто нужно добавить несколько индексов в базу данных, после чего она снова станет быстрой. Существуют и другие соответствующие параметры my.cnf, например, протоколировать запросы, не используя индекс.
В-третьих, обратите внимание на такие инструменты, как плагин firefox для пейджинга скорости страниц в Yahoo - он предложит несколько советов (например, выгрузить статический контент, сжать материал, который вы возвращаете, убедитесь, что у вас есть заголовки expires и т. Д.). Возможно, сами серверы не являются узким местом, и отображение страниц занимает много времени из-за зависимости от третьей стороны (внешние JS, реклама, flash ...).
Вам нужно иметь представление о том, насколько занят ваш сервер баз данных, по сравнению с вашим веб-сервером, чтобы знать, где вам нужно добавить дополнительное оборудование (т.е. вам нужно несколько веб-серверов с балансировщиком нагрузки внешнего интерфейса, или Вам нужно несколько серверов баз данных с репликацией или оба?).
Я уверен, что есть еще много вещей, которые можно сказать ...