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

В настоящее время у меня есть несколько облачных серверов в Rackspace

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

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

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

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

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

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

2 ответа

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

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

Другие вопросы по тегам