ASIC против x86 универсальной маршрутизации / коммутации

14

Системные администраторы часто пытаются убедить меня в том, что ОС x86 общего назначения могут работать так же хорошо, как маршрутизаторы с центральными процессорами с низкой частотой МГц и выделенным кремнием (то есть ASIC) на скорости линии 1 Гбит / с. Это мышление переносится в область SDN, такую ​​как виртуальные коммутаторы в VMWare.

Я думаю, что я интуитивно понимаю разницу между преимуществами ASIC против x86 в обработке трафика, особенно в отношении микровзрывов. Правильно ли предполагать, что ASIC для интерфейсов маршрутизатора или коммутатора превзойдет использование процессора x86 для всей обработки пакетов, которая сильно пострадает от прерываний процессора? Я знаю, что ОС (Windows, Linux или специализированная) в значительной степени влияет на производительность оборудования для маршрутизации или переключения. И я знаю, что скорости шины x86 накладывают теоретические максимумы на полосу переключения, особенно когда скорости превышают 1 Гбит / с.

  1. Как, например, скорость переключения Catalyst 6500 Sup2T ASIC сравнивается с реалистичной скоростью переключения x86, характерной для обычных ОС или SDN?

  2. Как скорость коммутации Cisco 7200VXR-NPE-G2, например, сравнивается с той же ...

  3. Как типичные задержки маршрутизатора или коммутатора сравниваются с общими ОС, выполняющими ту же функцию?

ПРИМЕЧАНИЕ. Я не хочу слышать о преимуществах размещения виртуальных коммутаторов или их роли в виртуальной и физической сети. Я также не хочу обсуждать преимущества SDN для времени развертывания приложения.

generalnetworkerror
источник

Ответы:

19

Правильно ли предполагать, что ASIC для интерфейсов маршрутизатора или коммутатора превзойдет использование процессора x86 для всей обработки пакетов, которая сильно пострадает от прерываний процессора?

Трудно сказать конкретно, являются ли прерывания ограничением, поскольку в этой части вашего вопроса мы не называем конкретные модели ЦП, операционной системы или маршрутизатора. В целом, это безопасное обобщение, что процессоры общего назначения не могут повлиять на производительность коммутации пакетов хорошо разработанной ASIC. Когда я говорю о производительности, я говорю о метриках RFC 2544 , таких как скорость безотказной пересылки пакетов в секунду (NDR), пропускная способность и задержка.

Нельзя сказать, что нет места для маршрутизатора на базе процессора; просто наш жизненный опыт говорит нам, что процессор не может переключать пакеты так же быстро, как ASIC или FPGA. Мой вывод о том, что ASIC / FPGA быстрее, чем многоядерный процессор, кажется, подкреплен этими вопросами и ответами на Electronics.SE .

Производительность шины PCI

Я знаю, что скорости шины x86 накладывают теоретические максимумы на полосу переключения, особенно когда скорости превышают 1 Гбит / с.

Я не уверен, на какие автобусные ограничения вы ссылаетесь, но имеющаяся у вас информация может быть несколько устаревшей. В настоящее время шина PCI Express, используемая в большинстве систем, масштабируется намного выше 10 Гбит / с.

PCIe 2.0 использует схему кодирования 8b / 10b , которая оштрафовала его примерно на 20% за накладные расходы на кодирование PCI-полосы; перед этим штрафом за кодирование PCIe 2.0 обеспечивает 4 Гбит / с сырой полосы пропускания на линию. Однако, даже с 20% 8b / 10b штрафом, PCIe 2.0 x8 (8 линий PCIe) выжимает более 25 Гбит / с; таким образом, вы можете легко запустить один адаптер 10GE с двунаправленной скоростью на карте PCIe 2.0 x8.

PCIe 3.0 (используется в чипсетах Intel Ivy Bridge) использует кодирование 128b / 130b, что значительно повышает эффективность шины PCI и удваивает пропускную способность на полосу. Таким образом, карта PCIe 3.0 x8 может обеспечить скорость 63 Гбит / с (8,0 * 8 * 128/132). Это не к чему чихать; с такими показателями производительности вы можете безопасно упаковать две линии 10GE с линейной скоростью.

Cisco против производительности Vyatta

Предостережение: я использую предоставленный поставщиком маркетинговый материал для всех сравнений ...

  1. Как, например, скорость переключения Catalyst 6500 Sup2T ASIC сравнивается с реалистичной скоростью переключения x86, характерной для обычных ОС или SDN?

Это немного сложно, потому что мы собираемся сравнить полностью распределенную систему коммутации (Sup2T) с системой централизованной коммутации (Vyatta), поэтому будьте внимательны при интерпретации результатов.

  • Sup2T может пересылать данные со скоростью до 60 Мбит / с без включенных функций . Ссылка: Catalyst 6500 Sup2T Архитектура Технический документ . Обратите внимание, что это просто система Sup2T без распределенных карт пересылки (DFC). Примечание 1
  • Я нашел результаты теста RFC 2544 для пересылки Vyatta 5600 со скоростью без отбрасывания до 20,58 Мбит / с и 70 Мбит / с, если вы можете принять некоторые отбрасывания. Пропускная способность NDR составляла 72 Гбит / с. Справка: тест производительности Vyatta 5600 vRouter (SDN Central) . Регистрация в SDN Central необходима для просмотра полного отчета.
  1. Как скорость коммутации Cisco 7200VXR-NPE-G2, например, сравнивается с той же ...

Vyatta выдувает NPE-G2 из воды, с точки зрения производительности; NPE-G2 может делать до 2 Мбит / с на основе таблицы данных Cisco NPE-G2 . Это не совсем справедливое сравнение, хотя, учитывая возраст NPE-G2, против новой 10-ядерной системы Intel, заполненной картами 10GE.

Как типичные задержки маршрутизатора или коммутатора сравниваются с общими ОС, выполняющими ту же функцию?

Это фантастический вопрос. Эта статья указывает на то, что Vyatta имеет более высокую латентность, но я хотел бы видеть такого рода испытаний , проведенных против процессоров серии Intel E5.

Резюме

Резюме параллельного сравнения Sup2T с Brocade Vyatta 5600:

  • Sup2T: 60Mpps NDR IPv4 с функциями (такими как ACL)
  • Vyatta и Intel E5: до 20Mpps IPv4 NDR без функций или 70Mpps, если вы можете принять небольшое количество капель.

Sup2T по-прежнему выигрывает, на мой взгляд, особенно когда вы смотрите на то, что вы получаете с Sup2T (распределенный масштаб до 720Mpps, MPLS, бесчисленное множество MIB, коммутация Layer2 и Layer3 и т. Д ...).

Если все, что вас беспокоит, - это грубая производительность коммутации, вы можете получить реальную производительность от процессора x86. Однако в реальных сетях дело не только в том, кто имеет лучшие номера в гонках за драгами; большинству людей нужно беспокоиться о функциях (см .: Когда мне следует сосредоточиться на каждом значении для оценки переключения? ). Важным фактором для рассмотрения является количество доступных функций и их интеграция с остальной частью вашей сети.

Стоит также рассмотреть практическую возможность использования систем на базе x86 в вашей компании. Я сам не использовал Brocade + Vyatta, но они могли бы неплохо справиться со сборкой хороших шоу-команд и вспомогательных хуков. Если они действительно поддерживают достаточное количество функций и их система хорошо масштабируется в реальных сетях , то сделайте это, если вам это нравится.

Однако, если кто-то идет дешево и просто создает linux box + bird/ quagga+ ACLs + qos, я бы не хотел быть парнем, поддерживающим это решение. Я всегда утверждал, что сообщество разработчиков программного обеспечения с открытыми исходными кодами проделывает огромную работу, внедряя инновации, но поддержка их систем бледнеет по сравнению с поставщиками основных сетей (Arista / Cisco / Force10 / Juniper). Нужно только взглянуть iptablesи tcувидеть, насколько запутанным вы можете сделать CLI. Я иногда задаю вопросы от людей, которые смотрят на вывод ip link showили ifconfigи получают странный ответ, потому что счетчики пакетов не верны; как правило, крупные поставщики сетей гораздо лучше тестируют свои счетчики, по сравнению с тем, что я вижу в драйверах сетевых адаптеров Linux.


Конечные заметки :

Примечание 1 Никто, кто заботится о производительности, никогда не купит Sup2T и не сможет наполнить шасси DFC. Sup2T может переключаться со скоростью 60 Мбит / с, но загруженное шасси с DFC масштабируется до 720 Мбит / с.

Примечание 2 Тест Vyatta проводился на двухпроцессорном 10-ядерном процессоре Intel E5-2670v2 с частотой 2,5 ГГц на ядро; если мы посчитаем одно ядро ​​как два виртуальных ядра (т. е. гиперпоточность), это всего 40 ядер для коммутации пакетов. Vyatta была настроена с сетевыми платами Intel x520-DA2 и использовала Brocade Vyatta версии 3.2.

Майк Пеннингтон
источник
1
Вы знаете, какие размеры были на этих рисунках? В резюме для Vyatta говорится, что они достигли 70 Мбит / с с кадрами 64B; такой же размер кадра используется в тестах Sup2T?
Райан Фоули
0

Серия 7200 устарела в пользу серии ASR, потому что они не могут обрабатывать мультигигабитную коммутацию на линейной скорости. Катализаторы и коммутаторы Nexus имеют преимущество пересылки по сравнению с процессором общего назначения, если коммутация пакетов остается в кремнии. Если трафик должен обрабатываться процессом (т. Е. Он должен оцениваться на процессоре, а не в ASIC / FPGA), ваша пропускная способность резко падает и задержка увеличивается. По этой причине, если вам требуется коммутация с высокой пропускной способностью, вы отделяете плоскость пересылки от плоскости маршрутизации и оптимизируете, чтобы сохранить как можно больше ваших коммутаций в кремнии.

В некоторых случаях вы увидите, что кремний специального назначения переключается в сочетании с процессором общего назначения (например, коммутаторы белого ящика, предназначенные для использования Big Switch или другого SDN для подключения к верхней части стойки, распределения или наложения), и в этих случаях Вы можете увидеть лучшее из всех миров (высокая пропускная способность, низкая задержка переключения; высокая мощность обработки для определения маршрута и политики; интеграция с инфраструктурами управления, такими как Puppet или Chef).

ДТК
источник