У нас есть сайт в газетном стиле, и мы объединяем нашу архитектуру из архитектуры, которая аморфно выросла, в более масштабируемое и устойчивое решение.
Я думал о следующем:
internet
|
h/w firewall
|
h/w load balancer
| |
| control server (nagios, mail server & misc)
|
pair of nginx load-balancing reverse caching proxies
| |
pair of apache app servers pair of mogilefs storage nodes
and mogilefs trackers
|
pair of mysql dbs (master/slave)
and mogilefs db
все машины будут работать под управлением 64-битных centos.
Нам нужно иметь возможность обслуживать 7 одновременных пользователей на серверах приложений и обслуживать 840 статических файлов в секунду. Итак, я подумал о том, чтобы описать вещи, как показано ниже:
У всех были бы диски со скоростью вращения 7.2 об / мин. В базе данных не так много данных, поэтому их можно кэшировать в буферах. Плюс у нас всего около 15% промахов в memcached, так что на db нет большой нагрузки.
Следующим этапом будет циклический DNS, где все будет отражено в другом центре обработки данных.
Чего не хватает в этой топологии? Кто-нибудь делал что-нибудь подобное с какими-либо компонентами? Кажется ли машина, что она недостаточно / перегружена?
Спасибо
РЕДАКТИРОВАТЬ
Еще немного информации:
7 одновременных просмотров страниц в секунду, которые будут обслуживаться apache - большая часть содержимого cms все равно кэшируется на диске и с использованием memcached, где это возможно. Требуется обслуживание 840 статических файлов в секунду - но это может быть немного слишком много, поскольку с датами истечения срока действия в далеком будущем только часть просмотров страниц будет с холодными кешами на клиенте.
Только администраторы будут загружать статический контент в узлы хранилища mogilefs. Они могут загружать ~ 100 файлов в день. Я новичок в могилефах - они будут использовать обычные диски (7.2krpm)
Затем этот контент будет доступен через http: // статический* .ourdomain ... Nginx будет проксировать запрос на этот контент и кэшировать его локально, поэтому, хотя первое извлечение может быть немного медленным, последующие извлечения будут происходить из кеша nginx.
Вы выполняете ~ 7 запросов в секунду с (динамических) веб-серверов и ~ 850 запросов в секунду для статического контента (smallfile), и для этого вам нужна многоуровневая архитектура с ~ 10 серверами?
Просто в голове это звучит слишком медленно. Либо вы перестраиваете, либо на вашем сайте какой-то медленный медленный код, или что-то еще?
Я предлагаю тщательно протестировать ваше приложение и на основе этого сделать оценку того, какое оборудование вам нужно для вашей нагрузки.
Несколько мыслей:
Наличие двух уровней выравнивания нагрузки - дополнительная сложность, нужно ли это? Как насчет всего одного балансировщика нагрузки HW и одного кеш-сервера (Squid или Varnish).
Никогда не используйте процессоры Atom для реальных серверов, они слишком маломощны.
Я не понимаю, почему вы хотите использовать старые процессоры настольного класса, такие как двухъядерные Athlons. Современные четырехъядерные серверные процессоры при реальном использовании как минимум в 2 раза быстрее. Использование современного более мощного оборудования позволит вам объединить уровни и упростить вашу архитектуру.
MogileFS, вероятно, великолепен; Я мало что знаю о нем, кроме его происхождения и того, что он много лет успешно используется. Но зачем настраивать технологию, с которой вы не знакомы, только для масштабирования до двух серверов? Если вам просто нужен уровень производительности 2 серверов с процессорами Intel Atom, откажитесь от этой конфигурации и получите один современный четырехъядерный сервер с быстрой дисковой подсистемой (4 или 8 дисковых RAID 10 или SSD).
Рекомендации:
Вышеупомянутая архитектура здорова и хорошо продумана. Но получите некоторые цифры для реальных характеристик отдельных частей. :-)
Это слишком общий вопрос, чтобы задавать простой вопрос. Вам нужно будет предоставить гораздо больше информации о предлагаемом решении и нагрузке:
Кроме того, я не вижу там никакого memcached; в зависимости от настройки, которая может быть полезной.
7 одновременных пользователей - это не очень много, сколько просмотров страниц в секунду это по вашему мнению?
редактировать для отражения новой информации:
Есть много деталей, которые нужно конкретизировать, но это кажется разумным. Многое будет зависеть от того, как вы настроите кеширование nginx и CMS. Не забывайте и о сети, я бы посоветовал хотя бы гигабит.
Меня немного беспокоит производительность могилефов. Если вы все еще находитесь на этапе проектирования, я бы посоветовал рассмотреть альтернативы (возможно, прямую репликацию файловой системы) или сценарии будущей миграции, в зависимости от ваших требований.
Кроме того, балансировщик нагрузки в настоящее время является элементом конструкции очень высокого уровня. Пока вы не уверены в требованиях к производительности и функциям, я бы оставил все варианты на столе.