Я запускаю веб-приложение RoR на двухъядерном сервере AMD Athlon 4450e с 8 ГБ оперативной памяти и Ubuntu.
Он работает нормально, получает всплески до 320 динамических запросов в минуту, он также обрабатывает все ресурсы, включая обслуживание некоторых больших видеофайлов.
У меня есть Apache с Passenger и MySQL, работающие на хосте.
Производительность по-прежнему довольно стабильна, но я вижу, что средняя загрузка начинает постепенно подниматься выше 1 во время более высоких периодов загрузки, а загрузка ЦП приближается к отметке 40 или 50%.
Я могу позволить себе дополнительный компьютер, и четырехъядерная система с 8 ГБ оперативной памяти соответствует моему бюджету.
Должен ли я превратить текущий блок в сервер базы данных и поставить перед ним четырехъядерный процессор в качестве веб-сервера?
Было бы лучше, если бы четырехъядерный процессор работал и как сервер базы данных, и как веб-сервер, а существующее двухъядерное ядро работало рядом с ним как еще один веб-сервер?
Любые другие схемы серверов, которые мне следует рассмотреть?
Вот снимок сервера под нагрузкой:
загрузка сервера http://img.skitch.com/20100208-jhk11btcb43yg4mhd75ecinqqr.png
Спасибо,
-Тим
Не сломано, не чини.
В качестве общего совета по следующим шагам вы можете / должны разделить свои статические файлы на nginx или cdn, а затем потратить некоторое время на анализ ваших запросов mysql, чтобы увидеть, где могут помочь индексы или небольшие настройки.
С двухъядерной машиной, работающей по рельсам, вы довольно легко сможете выдержать среднюю нагрузку 2–3 без какого-либо воздействия на пользователя.
Я бы настроил все на новом компьютере, так как обновление довольно значительное, и использовал бы старый как тестовый сервер.
Если вы перерастете и новый, вы можете настроить приложение RoR на старом сервере и использовать nginx для балансировки нагрузки. Репликация Mysql также может быть вариантом, по крайней мере, для значения резервной копии.
Сначала вам нужно выяснить, что вызывает загрузку процессора - db или приложение apache / RoR.
Я бы посоветовал вам поставить четырехъядерный компьютер как сервер базы данных, а двухъядерный оставить как веб-сервер. Если вы видите больше проблем с веб-сервером, вы всегда можете добавить еще один с балансировкой нагрузки.
Но опять же, сначала осмотрите и посмотрите, какова текущая нагрузка.