Какие конфигурации необходимо установить для сервера LAMP для интенсивного трафика? - PullRequest
3 голосов
/ 12 декабря 2011

Я получил контракт на создание сайта-клонирования для моего клиента. Это было сделано на PHP с MYSQL, и я планирую разместить его на сервере Amazon EC2. Мой клиент предупредил меня, что он будет рассылать электронные письма примерно 10 тысячам клиентов, поэтому мой сайт должен быть в состоянии справиться с таким потоком кликов из этих писем. У меня два вопроса:

1) Какой экземпляр сервера Amazon выбрать? Прямо сейчас я нахожусь в Малом экземпляре, мне интересно, должен ли я обновить его до Большого экземпляра на неделю взрыва электронной почты?

2) Какие конфигурации необходимо настроить для сервера LAMP. Например, есть ли у сервера Amazon, Apache, PHP или MySQL ограничение максимального количества подключений, которое я должен настроить?

Спасибо

1 Ответ

3 голосов
/ 13 декабря 2011

Технически, размещение статических страниц, PHP и БД в одном экземпляре - не лучший путь, если вы хотите хорошо масштабируемую систему. Тем не менее, если бюджет невелик и высокая доступность не является проблемой, то на практике это может сойти с рук.

Одним из вариантов, как вы говорите, является перезапуск сервера с большим размером экземпляра на период, на который вы ожидаете большой трафик. Часто это работает достаточно хорошо. Ваша проблема в том, что вы не знаете точную модель трафика, который придет. Вы получите определенный процент тех, кто находится на их компьютерах, когда он прибудет, и они перейдут прямо на сайт. Остальные будут течь со временем. Если ваш клиент отправит электронное письмо, пока большинство пользователей находятся в постели, это может помочь вам, если это возможно, избежать всплеска напряжения.

Если мы возьмем, к примеру, 2000 пользователей, посетивших ваш сайт за 10 минут, я сомневаюсь, что сайт, который не был оптимизирован, справится, очень вероятно, что там будет глупое узкое место. Часто проблема в БД, часто помогает кэш в памяти хорошего размера.

Все это говорит о том, что есть ряд архитектурных проектов и функций, предоставляемых такими компаниями, как Amazon и GAE, которые позволяют вам с правильно разработанным внутренним интерфейсом очень мало беспокоиться о масштабируемости, это обрабатывается для ты по большей части.

Если вы отделите базу данных от веб-сервера, вы сможете разместить экземпляры веб-сервера за эластичным балансировщиком нагрузки и располагать эти экземпляры по требованию. Существуют также стандартные шаблоны для масштабирования баз данных, хотя нет никаких конкретных возможностей, которые могли бы помочь вам в этом, кроме экземпляров баз данных.

Возможно, вы захотите попробовать механический турок Amazon , который в основном состоит из множества людей, которые выполняют часто тривиальные задачи (например, переход на веб-страницу, щелкают по этой ссылке и т. Д.) За обычно очень небольшую плату. Это не плохой способ симулировать реальный трафик.

Тем не менее, вам, вероятно, придется повторить это несколько раз, поэтому вам лучше использовать инструмент для нагрузочного тестирования. И помните, вы не можете загрузить тестирование экземпляра среза по времени с другим экземпляром среза по времени ...

...