Во-первых, я хотел бы предложить убедиться, что каждый ресурс, обслуживаемый вашим сервером, устанавливает соответствующие заголовки управления кэшем. Цель состоит в том, чтобы каждый раз по-настоящему динамически отображался действительно динамический контент, а любой стабильный или статический контент передавался из чьего-либо кеша в максимально возможной степени. Зачем доставлять изображение продукта каждому клиенту AOL, если вы можете доставить его первому и позволить AOL доставить его всем остальным?
Если вы в настоящий момент запускаете свой веб-сервер и dbms на одном и том же компьютере, вы можете посмотреть, как перенести dbms на выделенный сервер базы данных.
После того, как вы сделали вышеупомянутое, вам нужно начать измерять особенности. Какой ресурс первым достигнет своей емкости?
Например, если веб-сервер работает на максимальной или почти полной емкости, а сервер баз данных находится в основном в режиме ожидания, нет смысла переключать базы данных или осуществлять репликацию и т. Д.
Если веб-сервер в основном бездействует, а dbms постоянно отключается, нет смысла переключаться на кластер веб-серверов с балансировкой нагрузки.
Сначала позаботьтесь о простых вещах.
Если база данных является вероятным узким местом, убедитесь, что ваша база данных имеет правильные индексы, чтобы она быстро получала время доступа во время поиска и не теряла ненужное время во время обновлений. Удостоверьтесь, что dbms регистрирует другой физический носитель из самих таблиц. Убедитесь, что приложение не выдает бесполезных запросов и т. Д. Убедитесь, что вы не выполняете дорогостоящие аналитические запросы к своей транзакционной базе данных.
Если веб-сервер является вероятным узким местом, профилируйте его, чтобы увидеть, на что он тратит большую часть своего времени, и сократите объем работы, изменив приложение или внедрив новые стратегии кэширования и т. Д. Убедитесь, что вы не делаете ничего, что помешает вам. от перемещения с одного сервера на несколько серверов с помощью балансировщика нагрузки.
Если вы позаботились об этом, вы будете гораздо лучше подготовлены к переходу на несколько веб-серверов или серверов баз данных. Вы будете гораздо лучше информированы о том, чтобы решить, следует ли масштабировать базу данных с репликацией или перейти на совершенно другую модель данных и т. Д.