Александр Семенов


По материалам Intel.

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

Корпорация Intel (http://www.intel.com) ведет исследования в области ускорения работы сетевых серверов, основная идея которых - добиться эффективной, масштабируемой пакетной обработки без дополнительного аппаратного обеспечения, чтобы разгрузить центральный процессор. Низкая скорость работы сетевых серверов - это не частная проблема. Следовательно, для достижения результата она требует системного подхода - изменений микропроцессора, набора микросхем и системного ПО.

Проблемы обработки пакетов

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

Современные технологические достижения фактически скрывают неэффективный процесс создания и завершения пакетов. Многочисленные прерывания, неэффективное ПО для работы со стеком протоколов, повышенные требования к памяти и использование большого ее объема отнимают огромные ресурсы процессора для обработки пакетов. Сейчас почти все данные между различными системами передаются в виде пакетов. До сих пор имеющиеся технологии позволяли нейтрализовать негативные влияния этого процесса на производительность центров обработки данных, позволяя службам автоматизации прилагать свои усилия в других направлениях. Однако уже скоро более широкое использование Web-сервисов, применение IP-адресации для нужд пользователей, развитие сенсорных и беспроводных сетей приведут к неразрешимым проблемам с обработкой пакетов в центрах обработки данных. Без общесистемных решений увеличение количества пакетов и пропускной способности сети так и оставит нас на уровне развития технологий двадцатилетней давности.

Корпорация Intel разрабатывает новые технологии для эффективной обработки пакетов и увеличения общей пропускной способности на базе улучшения процессоров и платформ. Каждая из этих технологий может применяться отдельно, чтобы уменьшить нагрузку системы, но все они в совокупности способны обеспечить исключительную производительность. Широкое распространение серверов на базе этих технологий, поддерживающих работу гигабитных сетей, ожидается уже во второй половине текущего десятилетия.

Перегрузка центров обработки данных

В результате увеличения числа пакетов и пропускной способности сетей сильно возросла степень использования процессора для обслуживания сети и соответственно снизились его возможности для обслуживания других приложений. Это стало узким местом системы, а производительность центров обработки данных заметно упала. Исследования нагрузки при обработке пакетов выявили три основных категории процессов, расходующих ресурсы системы (рис. 1).

Fig.1 Рис. 1. Узкие места сетевой производительности.
Источник: Intel Linux Analysis.

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

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

Обработка пакетов - каждый посланный или полученный пакет отнимает ресурсы процессора для обработки стека TCP/IP. Промышленные стеки протоколов основаны на алгоритмах и коде, разработанных на заре развития сетевых технологий. Все изменения вносились в них "по ходу дела". В результате время обработки большинства пакетов недопустимо возросло.

Нагрузка системы при обработке пакетов - проблема, которая тянется с начала внедрения сетей Ethernet. Сейчас на все эти осложнения тратится приблизительно третья часть времени обработки пакета. Увеличение частоты процессора может помочь решить проблему и дать значительные преимущества. С другой стороны, при этом возрастает количество обращений к памяти, что может свести на нет эффект высокой скорости процессора. Для того чтобы достичь значительного увеличения производительности обработки пакетов, недостаточно улучшить только один параметр.

Наилучшим решением было бы использовать 1 МГц частоты процессора для обслуживания 1 Мбит пропускной способности сети. Это могло бы стать реальным решением, поскольку производительность процессоров в состоянии поддерживать такую пропускную способность. Но производительность памяти и задержка доступа, возникшие по историческим причинам, значительно расходятся с производительностью процессоров (рис. 2). Отметим, что показатели производительности процессоров на рис. 2 взяты из опубликованных результатов тестов; их не следует рассматривать в качестве прогнозов производительности процессоров в будущем.

Fig.2
Рис. 2. Скорость развития технологий.

Одна из причин этой проблемы в том, что возрастание частоты процессора приводит и к росту ожиданий при обращении к памяти. Получается, что возрастание пропускной способности сети в десять раз приводит к десятикратному же возрастанию нагрузки процессора при обработке каждого пакета. При скорости передачи данных в 10 Гбит/с система уже не справляется с обработкой пакетов. При этом увеличивается вероятность потери пакетов и снижается пропускная способность сервера.

В поисках решения

Необходимо пересмотреть процесс обработки пакетов. Такие решения, как remote direct memory access (RDMA) и TCP offload engines (TOE), позволяют освободить центральный процессор от обработки стеков протоколов. Но они решают не проблему в целом, а только ее часть. Например, TOE вносит вклад в решение задачи обработки протоколов и разгрузки процессора, выполняя ее на специализированных микросхемах сетевого адаптера. TOE помогает в обработке очередности и подтверждении пакетов TCP, разгружая процессор и уменьшая количество прерываний. Но даже при улучшенной обработке пакетов остается проблема большого количества обращений к памяти, обработки прерываний и управления ресурсами.

Ускорение работы серверов зависит от многих компонентов системы. Любое предлагаемое решение должно учитывать все составляющие - от сетевого адаптера, процессора и набора микросхем до стека протоколов и ОС. Исследования Intel в области ускорения работы серверов учитывают все эти компоненты в комплексе, поскольку обеспечить максимальную производительность приложений может только системное решение.

Технологии ускорения работы сетей

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

Цель исследований Intel в области ускорения работы серверов - увеличение производительности приложений в серверной архитектуре путем более эффективной передачи данных по сети. Для ускорения работы серверов требуется эффективная связь между сетевым интерфейсом, памятью приложения и кэш-памятью процессора. Проблема заключается в том, чтобы совместить увеличение пропускной способности сети с увеличением производительности пользовательских приложений.

Для решения этой задачи необходима гибкая архитектура системы, которая поддерживает весь диапазон IP-протоколов, а также сервисы, которые появятся в будущем. Кроме того, это решение должно обеспечивать постоянно возрастающие требования промышленных коммуникаций и независимость от ресурсов центров обработки данных. Исследование различных технологий ускорения работы серверов привело к выводу, что не может быть "естественного" способа использовать кэш-память для промежуточного или временного хранения информации.

Например, сервер пытается работать с такой скоростью, чтобы обеспечить обработку пакетов в 10-Гбит сети. Основную часть процессорного времени занимает обработка пакетов. Большая задержка при обращении к памяти приводит к простою процессора. Однако особенности сетей позволяют обрабатывать множество пакетов одновременно. Подход, который предлагает корпорация Intel, использует этот параллелизм для того, чтобы достичь более высокого уровня производительности, необходимого для будущих применений.

Вместо того чтобы пытаться улучшить по отдельности процессор, набор микросхем, сетевые адаптеры или операционные системы, Intel определяет общие узкие места и работает над их "развязкой" на системном уровне. В результате исследований были выделены пять основных подходов, которые могут помочь преодолеть барьеры на пути ускорения работы серверов, а именно:

  • объединение и разъединение сетевых стеков;
  • оптимизация стеков протоколов;
  • прямой доступ к кэш-памяти;
  • упрощение многопоточной обработки;
  • ускорение асинхронного копирования.

Моделирование, эксперименты и создание прототипов позволяют дать новым технологиям преимущества для решения основных проблем: перегрузки системы, ускорения доступа к памяти и обработки пакетов. В совокупности эти технологии способны уменьшить нагрузку процессора при обработке пакетов.

Выводы

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

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

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