• nav


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

Облако = 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, привнеся идеи открытого исходного кода в аппаратную часть серверов.

Сервер OpenCompute

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

Вид сверху ну сервер Facebook Open Compute

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





ПОХОЖИЕ СТАТЬИ:

Диверсификация поставщика CPU: чем заменить Intel в условиях санкций

А что если завтра в связи с очередным обострением, вам запретят покупать серверы на базе Intel, а ваша EMC без техподдержки превратится в тыкву? Там, "наверху", рассматривают и такой вариант, и ваш корпоративный ЦОД долже...

Что такое Edge Computing и почему граничные вычисления - это побег из облака

Подумайте об устройствах, которые следят за производственным оборудованием на заводе, или видеокамере, которая отправляет запись в реальном времени из удаленного офиса. Пока устройство одно, передавать их по сети довольно легко, но...

Обзор видеокарты Palit GTX 1660 Super: тестируем новинку в задачах вычислений и машинного обучения

Новая серия видеокарт GTX 1660 Super интересна, прежде всего, памятью GDDR6, имеющей высокую пропускную способность. Это именно то, что надо для задач машинного обучения и работы в Tensorflow. Как минимум, вы можете создать собст...

Переход с Intel Xeon на AMD EPYC: развенчиваем мифы, обходим подводные камни

Рядовые сисадмины и крупные IT-директора, когда речь заходит об AMD, задают порой совершенно детские вопросы, а мы на них отвечаем. Совместимость с существующим стэком, снижение TCO, вопросы производительности и поддержки.

...

5 основных отличий рабочей станции от настольного ПК

И маленький компьютер для бухгалтера, и рендер-станцию на 6 видеокарт в понимании производителей ПК можно обозвать словом «Workstation», так что если уж руководство поставило перед вами задачу выбора «Рабочей станции», то чтобы не ...


НА ФОРУМЕ ГОВОРЯТ



НОВЫЕ СТАТЬИ
Обзор трёх miniITX корпусов CrownMicro серии CMC-170

Сегодня речь пойдёт о трёх корпусах бренда CrownMicro для сборки ультракомпактных miniITX систем, а именно: CMC-170-113, CMC-170-303 и CMC-170-803. Эти модели имеют стильный дизайн, внешние блоки питания, VESA крепление...

Экспресс-тест видеокарты Palit GeForce RTX 2080 Super в задачах машинного обучения

Если вы выбираете GPU не только для игр, но и для научных расчётов, вам интересно видеть видеокарту с тензорными ядрами и современной памятью GDDR6 объёмом 8 Гб. Благодаря поддержке FP16, в некоторых теслах она показывает...