Назад | Перейти на главную страницу

Как спланировать масштабирование на моем облачном сервере в стойке

Сейчас у меня есть пара облачных серверов на Rackspace

  1. Для приложения NGINX + PHP + Memcached + APC 2GB instance
  2. Для экземпляра Mysql Database 1GB

Наш сайт на данный момент не очень загружен с точки зрения посещаемости, у нас около 100000 просмотров страниц в месяц, и серверы все еще должны достичь своей максимальной мощности.

Также провел некоторый нагрузочный тест с использованием ab и нескольких страниц со 100 одновременными пользователями, и я получил нормальную скорость транзакций 30 tans в секунду (это хорошо).

Сейчас мы находимся в режиме расширения, и есть вероятность всплеска трафика на сайте в ближайшие 2 месяца, поэтому мне нужно спланировать масштаб (имея в виду бюджет).

Некоторые из имеющихся у меня вариантов
1. Запустите более крупный экземпляр (больше памяти) для сервера Mysql на случай, если произойдет скачок трафика и сайт не сможет выдержать нагрузку (я считаю, что это самое быстрое решение).
2. Выполните некоторое разделение для чтения и записи вместе с установкой Master-Slave или Maser-Master.
3. Добавлен балансировщик нагрузки в стойке поверх моего сервера приложений.
4. Шардинг (я думаю, что на данный момент мой сайт может оказаться излишним)

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

Вы планируете «запустить более крупный экземпляр (больше памяти) для сервера Mysql на случай всплеска трафика». Имейте в виду, что вы не можете сделать это в реальном времени, вам, вероятно, потребуется выполнить обновление вручную, и даже если вы поймаете точный момент всплеска трафика и обновитесь до более крупного экземпляра, будет некоторое время простоя. Кроме того, если нагрузка на базу данных превысит емкость самого большого экземпляра RackSpace, вы застрянете. я знаю это Облачная база данных Xeround доступен на RackSpace и автоматически масштабируется при увеличении пропускной способности, и вы не ограничены емкостью одного экземпляра. У них также есть высокая доступность, которая избавит вас от необходимости настраивать Master / Slave или Master / Master. Также есть RackSpace's собственная служба MySQL который находится в стадии бета-тестирования, я считаю, что он имеет высокую доступность, но не уверен в автоматическом масштабировании, вы должны проверить и посмотреть.

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