Модерация прерывания сетевой карты что это
Большие потоки трафика и управление прерываниями в Windows
Мне очень понравился топик про распределение нагрузки от прерываний сетевого адаптера по процессорам, поэтому я решил описать как это делается в Windows.
Disclaimer: судя по некоторым комментариям в предыдущих постах, мне стоит повторить то, с чего я начал первый пост: я не даю (и не могу давать) общеприменимых рецептов. Особенно это касается производительности, где мельчайшая неучтенная деталь может катастрофически повлиять на результат. Вернее рекомендацию то я даю: ТЕСТИРОВАНИЕ И АНАЛИЗ. Смысл моей писанины в том, чтобы дать людям как можно больше информации для анализа, ведь, чем больше понимаешь в том, как что либо работает, тем легче находить пути устранения боттлнеков.
Итак, масштабируемость пропускной способности сети. Потребуется Windows Server 2003 SP2+. Сетевая карта, поддерживающая Receive Side Scaling (можно с достаточной долей уверенности сказать, что подойдет любая серверная сетевая карта, выпущенная в последние 5 лет или любая вообще 1Gb+ NIC, хотя частенько можно увидеть RSS и на 100Mb). Устанавливаем Windows Server и драйвера на карту…
ВСЕ. Настройка завершена. RSS по умолчанию включен во всех версиях Windows, в которых он поддерживается.
Тестирование
Возьмем не особо новый Dell-овый сервер с двумя четырехядерными ксеонами:
На борту две двухпортовые 1Gb сетевые карты и одна 10Gb, но я не нашел 10Gb свитча, так что завести не удалось — ну да ладно:
Что интересно в этих картах, так это то, что несмотря на поддержку RSS в 8 очередей, они не поддерживают ни MSI-X ни даже MSI. Более того, из четырех доступных линий pin-based прерываний на каждый сетевой порт отведена только одна (соответственно никакими способами заставить прерывания приходить на разные процессоры уже нельзя — это аппаратное ограничение данной конфигурации). 10 гигабитка зарегистрировала на себя то ли 32 то ли 64 (на глаз) вектора прерываний, но ее использовать — не судьба. Сможет ли индусская поделка для запуска игр справиться с задачей?
На всякий случай проверяем RSS (хотя если его не будет — будет заметно и так):
Для начала выключим RSS (включал обратно я уже после тестирования, но том же окне)
и запустим нагрузочный тест:
Полностью загружены два ядра, все остальные простаивают
Сеть загружена на треть:
50% одного процессора забито обработакой прерываний, еще 20% того же процессора — обработка DPC. Остальное — tcpip стек и приложение, которое отдает трафик.
Включаем RSS (скриншот выше). Процессор:
Сеть:
Треть одного процессора забита прерываниями, но DPC отлично распараллелены.
В общем, на данной конфигурации можно было бы отдавать порядка 3 гигабит (с одной сетевой карты) и только тогда мы бы встретили бутылочное горлышко.
На всякий случай, скажу, что у RSS есть менее известный родственник — Send Side Scaling. Если перед посылкой списка буферов выставить значение хеша, то прерывание после завершения посылки будет доставлено в соответствии с установленными indirection table-ами.
Вот здесь можно почитать про RSS, а здесь есть неплохая презентация в картинках поясняющая работу RSS. Если интересно, могу попробовать своими словами описать механизмы работы RSS, но как по мне — лучше читать первоисточники.
TCP Offload Engine
Если нечто подобное RSS в Linux вот-вот появится (не нашел никаких упоминаний о поддержке нормального аппаратного RSS в Linux: кто знает — дайте ссылку — проапдейчу пост). То с TOE в Linux все официально сложно. Патч от Chelsio (один из производителей high-end сетевых карт), реализующий поддержку TOE, был отклонен, а вместо этого начались какие то совершенно идиотские отмазки (при прочтении стоит иметь в виду, что BSD и Windows имеют нормальную поддержку TOE уже много лет).
Итак, что же это такое? TOE — это полная реализация TCPIP на аппаратном уровне: с подтверждением доставки, ретрансмитами при ошибках, контролем окна и пр.: сетевая карта по DMA прямо из памяти берет данные, режет на пакеты, присоединяет хедеры, а рапортует (при помощи прерываний) только в самых крайних случаях.
По умолчанию TOE стоит в automatic режиме. Смотреть Chimney Offload State:
Скриншот снимался во время активного тестирования, но в статистике видно, что ни одного «выгруженного» в сетевую карту соединения нет (о причинах позже). Включем принудительно (и через некоторое время запрашиваем статистику):
А вот и причина: в данную сетевую карту можно выгрузить только 1024 соединения (но реально система смогла выгрузить 1022). Довольно дорогой ресурс, чтоб можно было выгружать все подряд. Система эвристически пытается обнаруживать соединения (get/put больших файлов по http, пересылка файлового контента на файл-серверах и т.п.), которые проживут долго и выгружает в первую очередь их.
Но все же глянем, что получилось. Процессор разгрузился втрое:
Очень сильно уменьшилось количество (и время проводимое в) как ISR так и DPC:
Interrupt Moderation Rate — что это? (что выбрать в сетевом адаптере)
Interrupt Moderation Rate — задает скорость, с которой сетевой адаптер прерывает работу системы для обработки входящих или исходящих пакетов.
Сразу скажу: в некотором смысле опция позволяет установить чувствительность системы к обработке пакетов, соответственно чем быстрее обрабатываются — тем быстрее получаем сетевые данные. Поэтому для игр — лучше отключить.
Если выставить низкую скорость, тогда система будет более отзывчивой в плане обработки пакетов, но может снизится производительность других запущенных программ. Соответственно если задать высокую скорость — тогда наоборот будет снижена скорость обработки запросов, производительность приложений снижаться не будет, этот вариант полезен, когда сетевой адаптер отправляет большие пакеты.
Эту опцию стоит отключить для получения минимальной задержки, особенно касается игр.
По умолчанию выставлено значение Adaptive (авторежим в зависимости от типа трафика и использования сети). Как уже было сказано выше — для игр будет оптимальным решением отключить (в теории может повлиять на пинг). Важный момент — отключение опции немного повысит нагрузку на процессор, однако мне кажется, что на практике это будет незаметно. Если нагрузка заметна — тогда оставляйте значение Adaptive.
Опция в свойствах сетевой карты Intel(R) I211 Gigabit Network Connection Properties:
Надеюсь данная информация оказалась полезной. Удачи и добра, до новых встреч друзья.
Тема: Опция в сетевой карте «Модерация прерываний»
Опции темы
Поиск по теме
Добрый день.
Прочел на одном оверклокерском форуме, что если эту опцию в настройках сетевухи отключить, то потери пакетов станут минимальными, но вырастит нагрузка на ЦП.
Но т.к. мощности ЦП у пользователей растут, можете попробовать потестировать, отключив эту опцию. Возможно телепорты и лаги значительно снизятся.
Добрый день.
Прочел на одном оверклокерском форуме, что если эту опцию в настройках сетевухи отключить, то потери пакетов станут минимальными, но вырастит нагрузка на ЦП.
Но т.к. мощности ЦП у пользователей растут, можете попробовать потестировать, отключив эту опцию. Возможно телепорты и лаги значительно снизятся.
Надо нормальную сетевую карту ставить а не реалтек говенный
Хотя бы что-то такое
Сетевая карта Intel Gigabit CT Desktop Adapter (OEM) PCI-Ex1 1000Mbps
или получше
Сетевая карта Intel Ethernet Server Adapter I210-T1 (OEM) PCI-E x1 1000Mbps
Но в основном конечно влияет качество интернета.
Где искать этот параметр? В гугл лень лезть.
диспетчер устройств, сетевые адаптеры, выбираешь нужный, дополнительно
Надо нормальную сетевую карту ставить а не реалтек говенный
Хотя бы что-то такое
Сетевая карта Intel Gigabit CT Desktop Adapter (OEM) PCI-Ex1 1000Mbps
или получше
Сетевая карта Intel Ethernet Server Adapter I210-T1 (OEM) PCI-E x1 1000Mbps
Но в основном конечно влияет качество интернета.
Вы мне скажите, для чего Вам такие адаптеры и чем не устраивает современный реалтэк? Вы что во время игры прокачиваете через канал Гигабит данных? Или отправляете сотни тысяч пакетов в секунду на тысячи серверов? Игра потребляет мизерный траффик, килобайты, потери пакетов получить на реалтэк сетевухе, это надо постараться. Притом что большинство встроенных сетевух, это банальные конвертеры, а упаковкой и контролем пакетов все равно занимается процессор, но покупать сетевой контроллер с аппаратным контролем и упаковкой, это сверх-бюджетно, особенно для этой игры.
И да, процессор i5 3570 в разгоне до 4.2, память в разгоне до 1866, сетевая реалтэк 8111F, которая спокойно держит гигабит, на гигабитных свичах с гигабитной оптикой.
По теме, использую эту опцию в выключенном состоянии уже 2 года, год назад играя на ADSL подключении(8Мбит на 800Кбит), все эти манипуляции с настройкой сетевой, добавили лишь больше микролагов моделек и тп, но по ощущения немного улучшили регистрацию попаданий, но это было на древнем и старом телефонном соединении с пингом в 55мс до Москвы.
Сейчас же когда провел в частный дом оптику, что вкл., что выкл., разницы практически нет, ТПшит красных и светофоры, в одном бою я бог, в следующем бою меня унижают с дефолта, в этой игре все работает на рандоме и никакие настройки не помогут.
Что делать, если лагают сетевые игры. Как снизить инпут лаг и задержки сети
Чтобы успешно играть и побеждать в сетевых играх, важно добиться максимальной отзывчивости управления и плавности картинки. Ощущения от игры полностью зависят от нескольких независящих друг от друга факторов. Сюда можно отнести производительность оборудования, задержки системы и ввода на стороне пользователя (т.е. время от нажатия на клавишу мыши до отображения выстрела на экране) и качество сетевого соединения. Чтобы добиться идеального отклика, нужно оптимизировать каждый из этих пунктов.
Как снизить системные задержки (инпут лаг)
Системные задержки — это время, которое проходит от нажатия клавиши до отображения результата на экране. Если максимально упростить, то это инпут лаг. Однако только задержками ввода дело не ограничивается. Системные задержки зависят еще и от особенностей работы компонентов ПК и быстроты монитора.
Используйте проводные клавиатуру и мышь. По проводу подключение всегда будет быстрее и стабильнее. Впрочем, беспроводные геймерские модели тоже есть, но они стоят дороже проводных аналогов.
Выключите обработку картинки (шумоподавление, уплавнялка и т.п.) или переключите режим изображения на игровой. Если вы играете на телевизоре, то это особенно актуально. Но на мониторе тоже может быть переключатель режимов. Например, у MSI есть специальный игровой режим, который называется Zero Latency. Чтобы понять, если такой режим на вашей модели монитора, обратитесь к инструкции или на официальный сайт производителя.
Выставьте максимально возможную частоту обновления дисплея. Некоторые дисплеи могут не поддерживает частоту более 60 Гц при максимальном разрешении, в таком случае стоит опуститься до 1080p. Например, именно так работают консоли PlayStation 5 и Xbox Series X с телевизорами, у которых есть только вход HDMI 2.0. В совместимых играх таким образом можно выставить режим 120 Гц. Кроме того, некоторые мониторы могут работать при повышенной частоте, даже если она официально не поддерживается. К примеру, монитор BenQ GW 2470 может работать при 75 Гц, если выставить кастомный режим изображения в драйверах видеокарты.
Отключите вертикальную синхронизацию в настройках игры. Из-за этого картинка может быть менее приятной, так как будут возникать разрывы кадра — так называемый тиринг. Однако отзывчивость может увеличиться. Обратите внимание, что при наличии у вашего монитора и видеокарты функций VRR, G-Sync или FreeSync разрывов быть не должно.
Включите технологию NVIDIA Reflex. Чтобы снизить задержку на стороне пользователя, стоит включить технологию NVIDIA Reflex, которая поддерживается многими сетевыми играми. Она работает на всех видеокартах GeForce начиная с 900 серии. Кроме того, для нее не нужно специальное оборудование вроде монитора и мышки. Наибольший эффект технология дает на высоких настройках графики. Подробнее о работе технологии мы писали в отдельной статье «Как перестать сливать катки и начать тащить».
Включите режим низкой задержки. Также в панели управления NVIDIA можно включить режим низкой задержки. По своему эффекту он похож на NVIDIA Reflex, но работает только в DirectX 11. Про все настройки панели управления мы писали в гайде «Как настроить видеокарту NVIDIA для игр». У видеокарт AMD есть схожая функция — Radeon Anti-Lag, которую тоже можно включить в настройках дрйвера.
Как снизить сетевые задержки
Другой вид задержек — сетевые. Качество соединения в основном зависит от вашего провайдера. В первую очередь здесь важен такой показатель, как пинг.
Важно! Высокий пинг и нестабильное соединение — разные вещи. Если часть пакетов теряется, то это ощутимо влияет на геймплей. К примеру, вас отбрасывает назад или игровой мир замирает на некоторое время. При плохом пинге, как правило, таких проблем нет, но есть ощутимая задержка в действиях. Грубо говоря, вас будут убивать раньше, чем вы сможете среагировать.
Как проверить пинг
Проверить пинг можно с помощью специализированных сайтов или мобильных приложений. Один из наиболее популярных — speedtest.net. Однако этот инструмент лучше подходит для измерения скорости. Именно пинг лучше проверить штатными средствами операционной системы Windows.
Как настроить сетевой адаптер для снижения пинга
Если у вас проблемы с пингом, то стоит настроить сетевой адаптер. Перейдите в диспетчер устройств и найдите свой сетевой адаптер. Как правило, это Realtek, Intel, Qualcomm, Killer или другой. Также в списке может быть беспроводной Wi-Fi адаптер.
Зайдите в свойства адаптера и перейдите на вкладку «Управление электропитанием». Снимите галочку с «Разрешить отключение устройства для экономии энергии». Далее перейдите в дополнительно и отключите следующие пункты:
Буферы передачи и приема нужно поставить на максимальное значение — 128 и 512 соответственно. Максимальное число очередей RSS должно быть выставлено на доступный максимум. Выгрузка протокола ARP и NS должны быть включены.
Можно настроить и Wi-Fi адаптер, если вы им пользуетесь для игр. Сначала нужно также выключить «Разрешить отключение устройства для экономии энергии» и далее перейти на вкладку «Дополнительно». Здесь нужно также отключить настройки, связанные с энергосбережением. Для «Режима энергосбережения MIMO» выберите «Нет SMPS». Отключите также:
Программы для снижения пинга
В сети можно найти множество программ для снижения пинга. Суть их работы можно свести к выбору оптимального маршрута соединения, благодаря чему и снижается задержка. Одна из популярных программ — ExitLag. Она платная, но есть бесплатный трехдневный период для теста. Чудес от нее ждать не стоит и если у вас уже неплохой пинг, то программа вряд ли существенно его уменьшит. Однако попробовать все же стоит. В настройках программы вам нужно выбрать игру и регион сервера, для которого требуется оптимизация.
Общие советы
Если дело не в провайдере, то кое-что все же можно сделать для уменьшения задержек. Как правило, проблемы с соединением связаны с роутером.
Перейдите на диапазон 5 ГГц. Многие современные роутеры работают в двух диапазонах: 2,4 ГГц и 5 ГГц. Последний — более продвинутый. Он устойчив к помехам и лучше работает в многоквартирных домах, где в каждой квартире по роутеру. Если ваше оборудование поддерживает 5 ГГц, попробуйте переключиться на эту частоту. Обратите внимание, что приемник сигнала тоже должен поддерживать этот стандарт.
Смените канал Wi-Fi. При помощи бесплатной утилиты WifiInfoView можно проверить, насколько загружены разные каналы Wi-Fi в вашем доме. В настройках роутера стоит выбрать наименее загруженный канал.
Обновите прошивку роутера. Стоит также обновить прошивку роутера. Если вы купили новое устройство, то это стоит сделать первым делом. Зайдите на официальный сайт производителя и найдите свежую прошивку для своей модели роутера. Обратите внимание, что нужно точно выяснять модель устройства, включая ревизии. Возможно, наилучшим вариантом будет установить стороннюю прошивку. Если у вашей модели роутера мощное комьюнити, стоит поискать информацию на профильных форумах.
Измените DNS-сервер. Также можно попробовать поменять стандартный DNS-сервер от провайдера на альтернативный от Google. Предпочитаемый сервер — 8.8.8.8, альтернативный — 8.8.4.4.
Перезагрузите роутер. Если возникают какие-либо неполадки с роутером, стоит его перезагрузить. Возможно, после этого проблема уйдет сама собой.
Подключитесь к роутеру по проводу. Если размещение роутера и вашего ПК позволяет подключиться по проводу, то именно так и стоит сделать. Проводное соединение — самое стабильное.
alex_emilsson
Emilsson Magazine. Обо всём, кроме политики
Вся приводимая ниже информация, в первую очередь, разумеется, будет относиться к имеющемуся у меня сетевому адаптеру (за неимением других), однако, в основном, все сетевые адаптеры имеют схожие настройки (кроме параметров, специфичных для конкретного производителя/модели), различающиеся, разве что, названиями; поэтому вы с большим успехом можете отнести всё нижеизложенное и к своему адаптеру.
А теперь немного о подопытном. Это сетевой адаптер «Realtek PCIe GBE Family Controller» с чипом «Realtek RTL8111C/D(L) chip (10/100/1000 Mbit)«, интегрированный в материнскую плату «GigaByte GA-G41M-ES2L rev. x.x«<даже диагностические программы выдают именно ревизию "x.x", хотя по цветовой маркировке разъёмов это вылитая "1.0">. Причём, судя по информации с сайта GigaByte, это довольно распространённый вариант для их материнских плат. Адаптер используется на PC под управлением ОС Windows XP SP2, «отupdateнной» до SP3, а также под управлением Windows 7, на которую был установлен SP1 (использовалась версия для x86, хотя для x64 разницы нет). Параметры, специфичные для конкретной ОС, будут помечены в тексте вот так: «< WinXP >» или «< Win7 >«.
Примечания:
Задействовать этот параметр можно только, если все устройства в сети а) поддерживают большие кадры и б) сконфигурированы на использование кадров ОДНОГО размера;
Имейте в виду, что различные адаптеры и сетевые устройства могут по-разному вычислять размер большого кадра (например, включать или не включать размеры дополнительных заголовков);
Наиболее эффективно используют эту технологию сетевые адаптеры, работающие на скоростях 1 Гбит/с и 10 Гбит/с. Известно, что использование больших кадров на скоростях 10/100 Мбит/с на некоторых адаптерах приводит к потере производительности или даже обрыву связи;
Не все ОС могут работать с кадрами размером больше 4K, т.к. это может приводить к перегрузке сети при больших объёмах трафика;
////////WIN7///////Уменьшение числа буферов приёма/передачи менее 256 приводит к обрыву связи при использовании больших кадров.
Описание:
Разрешает или запрещает опцию включения по сети (WOL) компьютера после его выключения.
Описание:
Управляет общей функцией энергосбережения. Для Realtek состояние этой функции можно узнать с помощью «Realtek Ethernet Diagnostic Utility» (см. рис.)
Описание:
Позволяет адаптеру проверять контрольную сумму для принимаемых пакетов (Rx) и вычислять контрольную сумму для отправляемых пакетов (Tx). Включение этой опции может повысить производительность сети и снизить загрузку CPU. Если опция отключена, расчёт и проверку контрольной суммы выполняет ОС.
Описание:
Позволяет адаптеру выполнять задачу фрагментирования пакетов TCP на допустимые кадры Ethernet. Поскольку контроллер адаптера может выполнять фрагментирование гораздо быстрее, чем программное обеспечение ОС, то эта опция может повысить производительность передачи данных. Кроме того, адаптер использует меньше ресурсов CPU.
Описание:
Замещает виртуальный, назначенный пользователем MAC-адрес адаптера. Эта настройка не замещает реальный физический (аппаратный) MAC-адрес адаптера.
Примечание:
Если вы оставите поле «Значение» пустым (при установленном в это значение переключателе), также будет использован исходный MAC-адрес адаптера.
Описание:
Определяет начальную скорость соединения после WOL (далее, видимо устанавливается значение из параметра «Скорость и дуплекс«).
Описание:
Добавляет дополнительные 4 байта к Ethernet-фрейму (кадру), содержащие информацию о приоритете пакета и идентификаторе VLAN, которой этот пакет принадлежит. Т.е. данная опция разрешает аппаратное тегирование VLAN средствами адаптера.
Примечание:
Разумеется, эта опция имеет смысл только при установленной VLAN.
Описание:
Разрешает адаптеру генерировать или отвечать на специальные кадры управления потоком, которые помогают регулировать сетевой трафик.
Сеть может оказаться перегруженной, если входящие пакеты приходят быстрее, чем устройство их может обработать, и в результате происходит потеря пакетов до тех пор, пока условия, способствующие перегрузке не будут устранены. Механизм управления потоком позволяет обойти эту проблему и исключает риск потери пакетов.
Если происходит ситуация, потенциально способствующая перегрузке сети, адаптер генерирует кадр управления потоком, который заставляет устройство на другом конце линии немедленно приостановить передачу и подождать в течение небольшого случайного отрезка времени перед попыткой возобновления передачи.
Примечание:
Для получения преимущества от управления потоком, оба адаптера должны поддерживать это свойство.
Описание:
Определяет доступные возможности WOL.
Описание:
По смыслу эти параметры представляют тот же самый функционал, что и параметр «Функции включения по сети«; просто здесь WOL настраивается для «Pattern Match» и «Magic Packet» по отдельности.
Описание:
Для обеспечения целей энергосбережения, драйвер может автоматически отключить гигабитную скорость, когда сетевой кабель переподключён.
Описание:
Задаёт количество буферов памяти, используемых адаптером при отправке данных. Увеличивая это значение, можно повысить производительность адаптера; правда, при этом также возрастает расход системной памяти. Поэтому, если производительность не является критическим параметром, используйте значение по умолчанию.
Описание:
По смыслу эта группа параметров аналогична «Контрольной сумме разгрузки. «; здесь обработка контрольных сумм настраивается отдельно для TCP и UDP протокола IP обеих версий.
Описание:
По смыслу это параметр «Тегирование 802.1Q/1p VLAN» с более гибкими возможностями настройки.
Примечание:
На некоторых сетевых и/или системных конфигурациях при включенных параметрах группы «Разгрузка при большой отправке. » наблюдается существенная деградация производительности. В этом случае значения всех параметров «Разгрузка при большой отправке. » необходимо отключить (обычно это помогает решить проблему).
Понравилась эта и/или другие мои статьи?
Друзья, тогда предлагаю вам принять посильное участие в улучшении моего журнала. Что можете сделать именно Вы? Для начала, оставьте хотя бы комментарий! Это покажет, что Вы не равнодушны к моему «творчеству». А мне будет приятно, в свою очередь, осознать, что, то что я делаю, нужно не только мне, но и кому-то ещё, например, друзья, Вам! И это будет неплохим стимулом для написания новых статей, определении новых тем и т.д. Далее, Вы можете подписаться на мой блог и стать моими постоянными читателями! Это стало бы дополнительной моральной поддержкой для меня в плане моего творчества.