Доступен перевод (http://www.insight-it.ru/net/scalability/arkhitektura-friend.../) интервью с разработчиками сервиса Friend for Sale, входящего в десятку лучших приложений Facebook. Сервис построен на базе Ruby on Rails, обрабатывая около 200 запросов в секунду и поддерживая около 600 тысяч активных пользователей, опровергает бытующее мнение о плохой масштабируемости этой платформы.
Работу сервиса обеспечивают: 4 сервера баз данных, 6 серверов приложений, 1 демонстрационный сервер и 1 сервер для балансировки нагрузки:
- Каждый из серверов приложений содержит 4 ядра и 8 GB оперативной памяти.
- На каждом из них работает 16 сервисов mongrel (в сумме - 96).
- 4 GB оперативной памяти на каждом из них отведено под memcached.
- Сервера баз данных имеют более серьезное оборудование: при тех же 4-х ядрах, они имеют 32 GB оперативной памяти и RAID 10 массив из четырех 15000rpm SCSI дисков, работающих в режиме master-slave.- Программная платформа Ruby on Rails, в том числе приложения на Ruby:
- Распределенный сервер очередей - Starling (http://rubyforge.org/projects/starling/);
- Разделение операций чтения и записи между серверами - Magic Multi-Connections Gem (http://magicmodels.rubyforge.org/magic_multi_connections/);
- В качестве операционной системы используется CentOS (64-bit);
- СУБД MySQL;
- Балансировка нагрузки - nginx;
- Кэширование - Memcached;
- Для обновлений и перезапусков серверов задействовано ПО Capistrano (http://www.capify.org/getting-started/rails);- Мониторинг - Pingdom (http://tools.pingdom.com/);
URL: http://www.insight-it.ru/net/scalability/arkhitektura-friend.../
Новость: http://www.opennet.me/opennews/art.shtml?num=14802
Оу...Nginx используется. Приятно.
200 запросов в секунду - это 30 на каждый сервер приложений. А при такой конфигурации, не такие и большие числа.
>200 запросов в секунду - это 30 на каждый сервер приложений. А
>при такой конфигурации, не такие и большие числа.А на каждом сервере ещё и по 4 ядра (;
>200 запросов в секунду - это 30 на каждый сервер приложений. А
>при такой конфигурации, не такие и большие числа.Во-во
Угу, это говорит о том какое железо нужно для обеспечения нормально работы сервиса на базе Ruby on Rails.
Мда, они бы еще заявили что их рельсы не тормозят на ОДНОМ суперкомпьютере - тот же эффект.
У меня одна коробка раздает ~30 Мб в секунду мп3-ави контента,
100 запросов в секунду к статике страниц, 10 запросов в секунду к мп3/ави
к динамике ~15-20 запросов в секунду, мод_перл, постгрес 8.2Одна коробка, Коре2дура 6600, 2 Гб рамы, апача + нгинкс.
сайт конечно не такой уж наверное и тяжелый, но против 11 компов с кучей оперативы и кучей ядер... не внушает.
Вообще то получился замечательный пример того какой ряби-на-рельсах мрачный _ТОРМОЗ_ ! :)
>Вообще то получился замечательный пример того какой ряби-на-рельсах мрачный _ТОРМОЗ_ ! :)Для подобных (коммерческих/промышленных) проектов стоимость
железа не самое важное. Гораздо важнее сроки(=затраты) развёртывания,
стабильность работы и стоимость обслуживания(поддержка/доработка).
И этот пример, в этом смысле, очень показателен.
Пайтон - наше все! :-) С такими аппетитами руби ютубовцам денег бы не хватило на железки)
Мдя. Плоховато с производительностью, и это с использованием кэширования и таких монстрюг-серверов. Я был лучшего мнения о рельсах.
всего-лишь 11 серверов...
юзайте django и будет вам счастье
Автор, будь внимательней. Долго ломал голову про "...RAID 10 массив из 4 винтов работающих в режиме "мастер-слуга"." Пришлось лезть читать саму статью...