Статьи и обзоры

Смартфоны, GPS, гаджеты Кулеры Мультимедиа Периферия Сети, Wi-Fi, VoIP b2b оборудование Носители информации, NAS Софт, игры, Windows Игровые манипуляторы Корпуса и блоки питания Системы безопасности Аналитика Технологии Материнские платы Своими руками Мониторы ТВ-тюнеры Компьютеры Видеокарты

Соц. сети

           

Сервисы

Рассылка новостей

Опрос

Подробности о серверах Facebook Open Compute для облачных задач

Пред. ... 1 2 ... След. Конец
всего страниц: 2 | Все

Облако = x86 + открытый исходный код

По большому счёту, базовая архитектура Facebook не особо отличается от других высокопроизводительных веб-сервисов. Однако, Facebook – рекламное детище облачных приложений нового поколения. Его высокая популярность и высокая степень интерактивности сами по себе требуют гораздо большей масштабируемости и доступности, чем обычный сайт, предоставляющий, главным образом, информацию или простенький сервис.

Поколение «облачных приложений» не использует классические высокоуровневые принципы избыточности с массивными реляционными системами управления базами данных. Сочетание x86 scale-out кластеров, открытого программного обеспечения и «неSQL» – это то, на чём основаны Facebook, Twitter, Google и другие системы.

Тем не менее, в Facebook собрали некоторые фрагменты головоломки в открытом исходном коде программного обеспечения, дабы сделать его более пригодным для экстремальной масштабируемости. Разработчики Facebook выбрали язык PHP в качестве представительского уровня, потому что он прост в освоении, на нем легко писать и его код легко читаем. Не смотря на это, PHP очень требователен к CPU и памяти.

Если верить данным самой Facebook, код PHP почти в 39 раз медленнее, чем C++. Таким образом, было очевидно, что Facebook сперва должна решить эту проблему. Традиционный подход состоит в том, чтобы переписать наиболее производительные критические фрагменты кода на C++ в качестве расширений PHP, но в Facebook решили применить другой подход: разработчики усовершенствовали HipHop – преобразователь исходного кода. HipHop преобразует исходный код PHP в быстрый C++ код и компилирует его с g++.

Следующий фрагмент головоломки в Facebook – Memcached. Memcached – это программа, реализующая кэширование данных в оперативной памяти, с некоторыми очень интересными возможностями. Memcached – распределённая кэширующая система; это означает, что кэширование оперативной памяти посредством Memcached может охватывать множество серверов. В данном случае под понятием «кэш» следует понимать совокупность более малых кэшей. В основном, кэш рекуперируется за счёт неиспользуемой оперативной памяти, которая, вероятно, будет расходоваться операционной системой на менее эффективное кэширование файловой системы. Эти «кэш-узлы» не синхронизируются и не пересылаются, и в результате кэш памяти отлично масштабируется.

Facebook быстро стала крупнейшим в мире пользователем технологии memcached и значительно улучшила её. Разработчики портировали технологию для поддержки в 64-битных системах, снизили использование памяти в TCP, включили поддержку многоядерности (раньше использовалось только одно ядро) и т.д. На сегодняшний день, Facebook в основном применяет технологию memcached для облегчения нагрузки на базы данных.

Сервер Facebook

В цокольном этаже штаб-квартиры Facebook в Пало-Альто, Калифорния, три инженера компании на заказ разработали серверы, блоки питания, серверные стойки и системы резервного питания, да такие, которым позавидует любой сервер hp. Сервер Facebook должен был стать намного дешевле, чем среднестатистический сервер, а также более энергоэффективным. Свой проект они назвали Open Compute Project, привнеся идеи открытого исходного кода в аппаратную часть серверов.

Первое, что они изменили, была высота шасси. Был выбран формат 1.5U как компромисс между занимаемым объёмом и возможностью хорошего охлаждения сервера. Формат 1.5U позволяет использовать более высокие радиаторы, более крупные (60x60 мм) тихоходные вентиляторы, а не пронзительные «сороковки», пожиратели энергии, используемые в 1U-шасси. В результате, вентиляторы потребляют всего-навсего от 2% до 4% общей электрической мощности, что довольно удивительно, так как известно, что 1U-вентиляторам может требоваться до одной трети общего объёма энергопотребления системы. Кажется, что воздушное охлаждение в Open Compute 1.5U-сервере является таким же эффективным, как и в 3U-серверах, считавшихся до этого лучшими по параметру энергоэффективности.

В то же время, отдел разработок Facebook использует очень простые шасси, в которых нет деталей из пластика. Движение воздуха внутри сервера при этом становится более равномерным, а вес снижается за счет уменьшения количества деталей в корпусе. Нижняя стенка одного сервера служит верхней для сервера под ним. Я видел, как в одном из дата-центров не хватало места в стойках и один на другой были установлены несколько серверов hp proliant dl360 g6. Честно сказать, выглядело это странным образом.


Пред. ... 1 2 ... След. Конец
всего страниц: 2 | Все

новые статьи


 

Печать
Подписаться на рассылку
RSS-ленты