На чём работает Cloudflare: intel not inside!

Мы проектировали и строили сеть Cloudflare, с таким расчётом, чтобы иметь возможность быстро и недорого наращивать пропускную способность; чтобы любой наш сервер в каждом городе мог работать с любым нашим сервисом; и чтобы мы могли эффективно перемещать клиентов и трафик через нашу сеть, - указывает представитель Cloudflare в своём блоге. - Мы используем обычное, доступное в широкой продаже оборудование, и наше программное обеспечение автоматически управляет развертыванием и выполнением кода наших разработчиков и кода наших клиентов в нашей сети, чтобы те даже не беспокоились об используемых серверах. Поскольку мы управляем выполнением и расстановкой приоритетов кода, запущенного в нашей сети, мы можем оптимизировать производительность наших клиентов самого высокого уровня и эффективно использовать простаивающие мощности в нашей сети.

Альтернативный подход мог бы состоять в запуске нескольких фрагментированных сетей со специализированными серверами, предназначенными для выполнения определенных функций, таких как брандмауэр, защита от DDoS или рабочие. Однако мы считаем, что такой подход привел бы к потере свободных ресурсов и снизил бы гибкость создания нового программного обеспечения или внедрения новейшего доступного оборудования.

CloudFlare GenX

Мы используем технологию Anycast для направления веб-запроса в ближайший, центр обработки данных Cloudflare в одном из 200 городов, за счёт чего мы повышаем производительность и увеличиваем "площадь контакта" для борьбы с атаками.

После выбора центра обработки данных мы используем технологию Unimog, пользовательскую систему балансировки нагрузки Cloudflare, чтобы динамически балансировать запросы между различными поколениями серверов. Мы распределяем нагрузку на разных уровнях: между городами, между физическими кластерами, расположенными по всему городу, между внешними интернет-портами, между внутренними интерконнектами, между серверами и даже между логическими потоками ЦП внутри сервера.

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

Серверы поколения X

Недавно мы начали внедрять десятое поколение серверов, "Gen X", уже развернутое в крупных городах США и находящееся в процессе отгрузки по всему миру. По сравнению с нашим предыдущим сервером (Gen9), он обрабатывает на 36% больше запросов, но при этом стоит значительно меньше. Кроме того, он позволяет примерно на 50% снизить промахи кэша L3 процессора и до 50% уменьшить 99-процентнйю задержку сервиса NGINX. При этом, используемый процессор имеет на 25% более низкое тепловыделение в расчёте на одно физическое ядро.

Сервер CloudFlare Gen X

Примечательно, что мы впервые отказались от продукции Intel. Мы не используем их аппаратное обеспечение для каких-либо основных серверных компонентов, таких как процессор, плата, память, хранилище, сетевая интерфейсная карта (или любой тип ускорителя). Учитывая, насколько важна Intel для нашей отрасли, до недавнего времени это было бы трудно представить, опять же по сравнению с предыдущими поколениями серверов, активно используемых железо Intel. На этот раз применительно к нашим новым серверам, мы любим говорить: "AMD inside" :).

Мы были особенно впечатлены 2-м поколением процессоров AMD EPYC, потому что они оказались гораздо более эффективными для рабочих нагрузок наших клиентов. Поскольку маятник технологического лидерства качается взад и вперед между поставщиками, мы не удивимся, если наш выбор со временем снова изменится.

Сервер CloudFlare GenX

Эффективность процессора очень важна для наших серверов, поскольку у нас большая вычислительная нагрузка, и наши серверы обычно упираются именно в производительность CPU. Программный стек Cloudflare довольно хорошо масштабируется с ростом числа ядер. Таким образом, для нас большее значение имеет рост числа ядер и повышение энергоэффективности, чем тактовая частота процессора.

Для десятого поколения наших серверов, мы выбрали однопроцессорную конфигурацию на базе AMD EPYC 7642. Этот процессор имеет 48 ядер (96 потоков), базовую тактовую частоту 2,4 ГГц и 256 МБ кэша третьего уровня L3. Хотя номинальная мощность (225 Вт) может показаться высокой, она ниже, чем суммарный TDP в наших серверах 9-го поколения (на кастомизированных, недоступных в широкой продаже 24-ядерных процессорах Intel с тактовой частотой 1.9 ГГц, имеющих значение TDP по 150 Вт. прим. ред). Несмотря на то, что у AMD есть вариант процессора с 64-ядрами, прирост производительности для нашего программного стека и использования этой версии не был бы достаточно убедительным, чтобы пойти на дополнительные траты.

Мы развернули серверы на базе AMD EPYC 7642 в шести центрах обработки данных Cloudflare; он значительно мощнее, чем двухъядерная пара высокопроизводительных процессоров Intel (Skylake, а также Cascade Lake), которые мы использовали в прошлом поколении.

Читатели блога CloudFlare, возможно, помнят наши переживания касаемо процессоров ARM. Мы даже портировали весь наш программный стек для работы на ARM, и с тех пор поддерживали его, хотя этот шаг и требует немного больше работы для наших программистов. Мы сделали это для нашего тестового проекта серверов на базе Qualcomm Centriq, который в дальнейшем был закрыт. В то время как ни один из процессоров ARM, доступных на данный момент, не представляет для нас интереса, мы по-прежнему рассчитываем на увеличение числа ядер в x86 процессоров в 2020 году, и с нетерпением ожидаем того дня, когда наши серверы будут представлять собой смесь x86 (Intel и AMD) и ARM.

Процессор AMD

Обычно мы меняем серверы, когда прирост эффективности, обеспечиваемый новым оборудованием, перевешивает их стоимость. Производительность процессора AMD EPYC 7642 побудила нас ускорить замену нескольких поколений серверов на базе Intel.

Вычислительная мощность - это самая затратная статья в бюджете сервера. Наш подход к проектированию серверов сильно отличается от традиционных сетей доставки контента, спроектированных для доставки больших объектных видеотек. Там обычно используются серверы, ориентированные на хранение больших объёмов данных, а перепроектирование таких машин для предложения бессерверных сервисов является чрезмерно капиталоемким. Наши самые тяжелые нагрузки - это как раз те самые бессерверные приложения и брэндмауэр, за счёт чего размер сетевого пакета в нашей сети очень маленький.

Наш новый сервер Gen X имеет один свободный слот PCIe для установки дополнительной карты, которая пригодится если она сможет выполнять какие-то функции эффективнее основного процессора. Возможно, это будет GPU, FPGA, SmartNIC, ASIC, TPU или что-то ещё, покажет время.

Старый сервер на Intel
4-узловой сервер 9-го поколения на базе процессоров Intel

Мы отказались от нашего многоузлового шасси в пользу традиционного форм-фактора 1U, разработанного для более простого обслуживания в дата-центре.

Память, SSD и сеть

Поскольку производительность наших серверов традиционно упирается в CPU, в сервере Gen X такие компоненты как ОЗУ и SSD практически не претерпели изменений. Мы продолжаем использовать 256 ГБ оперативной памяти, как и в предыдущем поколении, но с более высокой частотой в 2933 МГц. Для хранения мы по-прежнему используем порядка 3 Тб на узел, набранные тремя накопителями NVMe (вместо SATA).

SSD

Это даёт нам более высокую производительность в IOPS, что позволяет использовать полнодисковое шифрование с помощью LUKS. Для сетевых интерфейсов мы продолжаем использовать адаптер 2-портовые платы Mellanox со скоростью 25G.

По материалам корпоративного блога Cloudflare

Рон Амадео
25/02.2020


Комментарии

Похожие статьи:

Обзор и FAQ сервера Huawei Taishan 2280 V2: ARM64 сервер на собственных процессорах Kunpeng 920

Мы подробно изучаем первый доступный в широкой продаже ARM64 сервер: как он работает, как управляется, с каким софтом совместим и ради чего вообще стоит переходить на китайские процессоры, отказываясь от 30-летней архитектуры?

Как вода вытесняет воздух в суперкомпьютерах Lenovo

Пару лет назад максимальный предел воздушного охлаждения составлял 600Вт на юнит. Сегодня теоретически с помощью воздуха возможно отвести до 1.2кВт на юнит. Однако, в будущем потребуется отводить уже 2 КВт, и без жидкостного охлаждения здесь не об

Обзор кулера Cooler Master Wraith Ripper для рабочих станций на Threadripper. Сравнение с СЖО на 250-Ваттном CPU!

Если вы подбираете мощную рабочую станцию на 32-ядерном процессоре AMD, то вопрос охлаждения должен для вас быть особенно важным. В этом обзоре на примере кулера для игровых процессоров Threadripper, мы поговорим о том, что может о

Обзор стекируемого коммутатора Zyxel XGS4600-32 уровня ядра

Гигабитные стекируемые коммутаторы серии XGS4600 класса Layer 3 рассчитаны на использование в качестве корневых устройств в сетях небольших отелей, офисов и бизнес-центров. Они имеют 10-гигабитные SFP+ слоты для серверных ферм и о