Потеря пакетов интернета как исправить

Как правило основной проблемой при запуске бывает неоптимально работающее по умолчанию оборудование (процессор, сетевые карты). Наша задача — поймать все пакеты, не упустив ни одного и обработать, при этом желательно в реальном времени.

Для лучшего понимания незнакомых терминов (IRQ, Softirq, NUMA) — краткий экскурс в сетевой стек Linux.

Как увидеть информацию о потерях

Для начала надо узнать, что проблема есть. Для этого будем использовать набор утилит netutils-linux и стандартные инструменты iproute. В Carbon Reductor 8 всё поставляется внутри контейнера /app/reductor , в других случаях можно установить их следующим образом:

Информация о конкретной сетевой карте

Смотреть нужно на все виды RX Errors.

Некоторые сетевые карты предоставляют более подробную информацию о характере потерь:

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

Нагрузка на процессор и что она значит

и нажмите клавишу “1”, чтобы увидеть информацию о каждом конкретном процессоре.

Вывод имеет следующий формат:

Нас в основном интересуют цифры “%si”.

Нагрузка должна быть распределена равномерно, если Cpu0 трудится, а 1..n находятся на нуле — это нерациональное использование имеющихся ресурсов.

  • 0% на каждом ядре — а сервер точно работает? Если да — он очень даже хорош.
  • 1-3% — всё хорошо настроено, можно даже увеличивать канал и не беспокоиться об апгрейде железа.
  • 6-10% — можно не беспокоиться, но перед увеличением канала нужно позаботиться об увеличении мощностей сервера.
  • 11-15% — нужно задуматься о покупке более хорошего оборудования или оптимизации настроек имеющегося.
  • 20-100% — скорее всего будут потери пакетов. Если ситуация сохраняется после того, как вы прошлись по всем последующим пунктам этой статьи (и воспользовались ими) — свяжитесь с технической поддержкой.

Информация о сетевом стеке

Вы можете посмотреть подробную информацию о том, как сетевой стек работает в текущий момент.

Он подсвечивает некоторые значения жёлтым (высокое значение) и красным (чрезвычайно высокое значение или ошибка). Это эвристика и не подстраивается под конкретный сервер.

При большом количестве ядер или сетевых карт информация может не влезать на экран, в таком случае можно уменьшить масштаб терминала или указать опцию —devices=eth1,eth2,eth3 :

Вывод выглядит так:

Данные собираются из различных источников ( /proc/interrupts , /proc/softirqs , /proc/net/softnet_stat и др) и представленны в удобочитаемом виде. По умолчанию отображается то, насколько данные изменились по сравнению с предыдущими значениями. Есть режим —no-delta-mode , отображающий абсолютные значения.

  • /proc/interrupts отображает то, как очереди сетевой карты распределены между ядрами. Наиболее оптимальный способ — 1 очередь на 1 ядро, можно “лесенкой”. Бывает так, что в одну очередь приходит больше пакетов, чем в остальные — обычно это связано с тем, что трафик инкапсулирован (QinQ, PPP).
  • Load per CPU — отображает чем занимается каждое ядро. Распределение обработки трафика не обязательно достигается за счёт очередей сетевой карты (RSS) — в некоторых случаях может использоваться технология RPS (программный аналог RSS).
    • Interrupts — реальные прерывания, обычно это копирование пакетов из сетевой карты в оперативной памяти.
    • NET_RX — отложенные прерывания по обработке входящего трафика: собственно обработка пакетов файрволом
    • Total — число обрабатываемых пакетов
    • dropped — потери пакетов
    • time_squeeze — задержки пакетов — пакет не успел обработаться за отведённое ему время и его решили обработать позже. Не обязательно приводит к потерям, но плохой симптом.
  • Network devices — статистика по сетевым картам
    • rx-errors — общее число ошибок, обычно суммирует остальные. В какой счётчик попадает потерявшийся пакет зависит от драйвера сетевой карты.
    • dropped , fifo , overrun — как правило, пакеты, не успевшие обработаться сетевым стеком
    • missed — как правило, пакеты, не успевшие попасть в сетевой стек
    • length — как правило слишком большие пакеты, которые не влезают в MTU на сетевой карте. Лечится его увеличением.
    • crc — прилетают битые пакеты. Часто бывает следствием высокой нагрузки на коммутатор.
Это интересно:  Как взять кредит в сбербанке без страховки

Какие вообще бывают настройки

Процессоры

Частые проблемы в настройках процессора.

“Плавающая” частота

Суть видна — довольно мощный процессор работает в полсилы и даже не собирается напрягаться. Заставить его работать в полную силу можно используя утилиту maximize-cpu-freq входящую в netutils-linux. В Carbon Reductor 8 она используется автоматически.

Режим энергосбережения

Есть ещё одно “но”, которое может приводить к проблемам и которое сложно выяснить программным путём — режим энергосбережения в UEFI/BIOS, который у некоторых процессоров Intel Xeon приводил напротив, к повышению нагрузки. Лучше его выключить, выбрав режим “производительность” (для этого потребуется перезагрузить сервер).

Гипертрединг

В некоторых случаях использование процессора с отключенным гипертредингом оказывалось эффективнее, чем с включенным, несмотря на меньшее количество логических ядер. Отключить его можно при перезагрузке в BIOS/UEFI.

Низкая частота

Что с этим делать — лучше не покупать такие процессоры вообще (они могут быть весьма дорогими). Если он уже куплен — поискать ему другое применение.

Оптимальная частота для процессоров используемых для сетевых задач — 3GHz+, но чем выше — тем лучше.

Сетевые карты

Размер буфера

Здесь мы видим выкрученный на максимум rx-буфер. Обычно подобрать оптимальное значение сложно, большой буфер = задержки, маленький буфер = потери. В нашем случая самое оптимальное — максимальное значение, оптимизации имеют смысл только при наличии проблем.

Пример команд для увеличения буфера:

RHEL-based дистрибутивы (платформа Carbon, CentOS, Fedora итд) позволяют указывать параметры ethtool в качестве опции в настройках интерфейса ( /etc/sysconfig/network-scripts/ifcfg-eth1 ), например строчкой

Альтернативный вариант с автоматическим определением оптимального значения (утилита из netutils-linux):

Распределение прерываний

Реальные прерывания

Многие сетевые карты имеют несколько очередей для входящих пакетов. Каждая очередь висит на ядре/списке ядер. На многих железках из коробки, несмотря на то, что в smp_affinity_list указан список 0-$cpucount все прерывания находятся на первом ядре процессора. Обойти это можно распределив все прерывания на разные ядра c помощью утилиты rss-ladder.

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

Многопроцессорные системы

Если в системе больше одного физического процессора, лучше распределять прерывания сетевой карты в рамках ядер её локальной NUMA-ноды. rss-ladder делает это автоматически. Число очередей лучше подстроить под число ядер одного физического процессора, по умолчанию их число часто равно общему числу ядер.

Пример — поставим eth2 8 объединённых очередей.

Очереди не всегда бывают combined, бывают отдельные tx и rx, зависит от модели и драйвера сетевой карты.

Не все многопроцессорные системы поддерживают NUMA, иногда память является общей для обоих процессоров и для сетевых карт.

Пример для Carbon Reductor 8

Мы не используем автоматическую настройку RSS, т.к. в редких ситуациях это приводит к зависанию сетевой карты. Так что настраивать это необходимо вручную:

Создаем сам файл-хук: /app/reductor/cfg/userinfo/hooks/start.sh

В него добавляем следующее содержимое:

и делаем его исполнимым: chmod a+x /app/reductor/cfg/userinfo/hooks/start.sh .

Отложенные прерывания

Существует технология программного распределения обрабатываемых пакетов между ядрами — RPS. Она универсальна и подходит для любых сетевых карт, даже с одной очередью. Пример настройки:

Это интересно:  Задачи по бухгалтерскому учету с решениями

В Carbon Reductor 8 данная утилита используется автоматически для сетевых карт с одной очередью.

Различные значения rx-usecs

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

Статья для лучшего понимания, правда больше под маршрутизаторы : http://habrahabr.ru/post/108240/

В кратце — можно за счёт повышения нагрузки на процессор слегка снять нагрузку с сетёвки уменьшая rx-usecs. На большинстве машин использумых в нашем случае оптимальным оказалось значение 1.

Опции несовместимые с FORWARD / bridge

General Receive Offload и Large Receive Offload могут приводить к паникам ядра Linux и их лучше отключать:

Либо при компиляции драйвера.

Замена сетевых карт

Иногда бывает дело просто в железе. Если уверены, что сетевая карта хорошей модели и есть ещё одна такая же — попробуйте использовать её. Возможно она просто бракованная, хоть вероятность и мала.

Иногда дело бывает в драйвере (в случае dlink / realtek сетевых карт). Они, конечно, здорово поддерживаются практически любым дистрибутивом, но для высоких нагрузок не очень подходят.

Сетевой стек, iptables

NOTRACK

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

Крупным провайдерам с большим объёмом трафика эта опция практически обязательна, почему — показывает пример:

Потеря пакетов 100%. Что делать?

у меня два ПК, на одном Win7 на другом WinXP. Сетьчерез DIR-300.
При команде ping с Win7 на WinXP выдаёт:
======================================
C:Users1>ping 192.168.0.102

Обмен пакетами с 192.168.0.102 по с 32 байтами данных:
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.

Статистика Ping для 192.168.0.102:
Пакетов: отправлено = 4, получено = 0, потеряно = 4
(100% потерь)
======================================
При команде ping с WinXP на Win7 всё нормально
Подскажите в чём проблема?

21.10.2013, 16:18

Потеря пакетов
У меня настроен интернет через VPN (так как живу в общежитии). ОС: Win7. Проблема в том, что у.

Потеря пакетов на роутере
Иногда в играх замечаю потерю пакетов и подскакивающий пинг. Очень хорошо заметно в Dota 2, где.

Ping роутера, потеря пакетов это нормально?
Купил роутер ASUS RT-N18U. каждое утро отваливался вифи и сетка + терялось много пакетов при пинге.

Потеря пакетов
Добрый день, мой компьютер получает интернет по такой схеме Модем 4G воткнут в роутер, роутер.

Потеря пакетов
Здравствуйте, недавно обнаружил у себя такое явление, как потеря пакетов (при помощи программы ping.

21.10.2013, 16:29 2 21.10.2013, 17:25 [ТС] 3

Настройка протокола IP для Windows

Имя компьютера . . . . . . . . . : VotinOFF
Основной DNS-суффикс . . . . . . :
Тип узла. . . . . . . . . . . . . : Смешанный
IP-маршрутизация включена . . . . : Нет
WINS-прокси включен . . . . . . . : Нет
Порядок просмотра суффиксов DNS . : Dlink

Ethernet adapter KVARTAL:

DNS-серверы. . . . . . . . . . . : fe80::1%12
91.218.100.2
91.218.100.3
NetBios через TCP/IP. . . . . . . . : Включен

Ethernet adapter VirtualBox Host-Only Network:

DNS-серверы. . . . . . . . . . . : fec0:0:0:ffff::1%1
fec0:0:0:ffff::2%1
fec0:0:0:ffff::3%1
NetBios через TCP/IP. . . . . . . . : Включен

Туннельный адаптер isatap.Dlink:

Туннельный адаптер Подключение по локальной сети* 11:

Обмен пакетами с 192.168.0.1 по с 32 байтами данных:
Ответ от 192.168.0.1: число байт=32 время 0

Как определить причину потери пакетов, высокого ping. WinMTR.

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

Если программа покажет потери на каком-либо узле вашего маршрута, можете смело обращаться к своему провайдеру и просить его изменить маршрут, приложив screen с потерями.
Не требует установки, скачал и запустил, пользование также очень простое, разберем пример.
В строчке Host указываем наш исследуемый адрес, который можно вводить как в виде ip-адреса, так и в виде доменного имени и нажимаем Start.
В настройках по умолчанию все узлы отображаются в виде доменного имени, что бы увидеть ip-адреса необходимо в Options убрать галочку “Resolve names“.

Это интересно:  Охрана труда в химической лаборатории

Как исправить потерю пакетов интернета?

Другие интересные вопросы и ответы

Как слепые пользуются интернетом? Например, как они читают ответы на the question?

Недавно на Хабрахабре была переводная статья, в которой слепой программист рассказывал о себе: habrahabr.ru

Если коротко, то специальный компьютер или брайлевский дисплей не обязателен. Текст на экране озвучивает специальная программа. В статье есть ссылка на аудиозапись — скорость озвучки такова, что сопоставима со скоростью чтения глазами.

Артём Бакулин 4

Интернет может заменить реальную жизнь? В наше время возможно обойтись без него?

Как проверить потерю пакетов данных при передаче?

Меня, наверное, затроллят матёрые сисадмины, но я бы проверил потерю пакетов консольной командой ping. Запускаем консоль, пишем ping [ip адрес с которым связываемся] -t. Вместо ip-адреса можно какой-либо сайт указать, если не принципиально, например, yandex.ru. Параметр -t означает, что пинговать надо постоянно, а не 4 обмена пакетами, как без параметра. Все, пинг пошел, если будет потеря пакетов, это будет видно в отчете.

Наверняка есть какие-нибудь специализированные приложения, но мне по роду деятельности они не требуются.

Да, для не знающих как запустить консоль. Нажимаем Win+R, пишем в строке cmd, жмакаем Enter.

З.Ы. Это все для винды, конечно.

Будет ли потеря пакетов интернета по локальной сети?

Должно быть 0, если кабель качественный, правильно обжаты разъёмы, проложен далеко от источников электромагнитных помех.
Потеря пакетов Wi-Fi может быть связана с тем, что мешают соседские сети Wi-Fi.

Как повысить скорость интернета на Windows 10?

С настройками по умолчанию в «десятке» максимальная скорость интернет-канала уменьшена на 20% (скорее всего, они используются для получения обновлений и передачи конфиденциальной информации Microsoft). Изменить ситуацию поможет редактирование соответствующего ключа реестра, например, через «Редактор локальной групповой политики» (для Home-версии не актуально).

1. Запускаем утилиту, выполнив «gpedit.msc» в строке поиска или окне командного интерпретатора (Win+R).

2. В разделе «Конфигурация компьютера» разворачиваем ветку «Административные шаблоны».

4. Переходим в «Планировщик пакетов QoS».

5. Выполняем двойной клик по параметру «Ограничить резервируемую пропускную способность».

Ограничения резервируемой пропускной способности

6. Заходим в «Свойства параметра» и активируем опцию.

7. В качестве ограничения пропускной способности вводим «0» и сохраняем новую конфигурацию системы.

Ограничения пропускной способности до 0

Осталось проверить, используется ли планировщик пакетов QoS активным сетевым соединением.

Вызываем «Панель управления» (Win→X).

Переходим в «Сетевые подключения».

Жмём по пункту «Настройка параметров подключения».

Переходим в окно свойств активного сетевого соединения и проверяем, чтобы возле «Планировщик пакетов QoS» стоял флажок.

Настройка сетевого подключения Realtek

Низкая скорость обмена файлами

Скачивание файлов через торрент-клиент или менеджер загрузки может происходить долго из-за настроек самых приложений или отсутствия достаточного количества источников раздачи (в случае работы с пиринговыми сетями).

Первым делом, что касается торрент-клиентов (Bit-, qBit-, uTorrent), необходимо проверить наличие достаточного количества сидов (доступность раздачи). Второй момент — ограничение скорости приема/передачи в приложении или для раздачи. Убирается оно в настройках самой программы.

Отрываем наш клиент для скачивания файлов через торрент-трекер.

Вызываем контекстное меню программы через иконку в трее (возле часов).

Из списка поочередно выбираем команды «Ограничение загрузки/приема» и «Ограничение отдачи/раздачи» и устанавливаем их значения как 0 или «Не ограничено».

Статья написана по материалам сайтов: www.cyberforum.ru, ithelp21.ru, onpioneer.ru.

«

Помогла статья? Оцените её
1 Star2 Stars3 Stars4 Stars5 Stars
Загрузка...
Добавить комментарий