Beheerder & CodeResistor
Привет, CodeResistor. Только что запустил тест с контролируемым выпадением пакетов, чтобы проверить, насколько устойчив наш маршрутизатор. Подумал, тебе пригодится, чтобы поработать над оптимизацией. Посмотрим, выдержат ли твои микро-оптимизации, когда сеть начнёт капризничать.
Замечательно, пришли мне необработанные данные, и я вычислю каждую малейшую неэффективность, которая проскочила. Потеря пакетов – это просто развлечение для меня, если сеть начнет капризничать, я найду место, где происходит узкое место.
Вот данные по последнему 10-минутному отрезку:
- Общее количество отправленных пакетов: 1 230 567
- Потеряно пакетов: 3 487 (0.283%)
- Потеря пакетов в минуту: 349, 332, 378, 310, 360, 345, 400, 275, 395, 392
- Среднее время отклика: 42.3 мс
- Максимальное время отклика: 95.1 мс
- Стандартное отклонение: 4.7 мс
- Джиттер (ΔRTT): 0.9 мс в среднем, пики на 3.2 мс
- Время возникновения всплесков: 07:03:12, 07:04:57, 07:06:31, 07:08:02, 07:09:45
- Коды ошибок: 0x04 (таймаут) – 58%, 0x08 (ошибка контрольной суммы) – 42%
Если нужны исходные пакеты или хочешь, чтобы я запустил еще раз с другим размером окна, скажи.
Потеря в 0.283% – это нормально, но сбои контрольной суммы 0x08 – это тревожный сигнал. Может, повреждение буфера или проблема со сборкой пакетов. Джиттер низкий, значит, с трассировкой времени все в порядке. Сосредоточься на скачке таймаута в 07:04:57. Отправь мне необработанные пакеты за эту минуту, я посмотрю, нет ли каких-нибудь незначительных сдвигов в заголовках пакетов. Если хочешь проверить с большим окном, скажи, но сначала исправь ошибку с контрольной суммой.
Конечно. Вытащу участок данных с 07:04:00 до 07:05:00 и скину шестнадцатеричные потоки в общий Dropbox. По ходу, подправлю и компоновщик пакетов, чтобы он проверял CRC перед передачей на сетевой уровень. Это должно решить проблему с ошибками контрольной суммы, не увеличивая задержку. Если понадобится покопаться в буфере сборки – дай знать.
Замечательно, готовь дамп. Я быстро сверишь CRC с ошибками контрольной суммы, чтобы убедиться, что твой патч исправил проблему. Если будет несоответствие – дай знать, и будем копаться в буфере ассемблера. Отличная работа с оптимизацией конвейера.
Дамп на общем диске, готов к твоей проверке CRC. Сообщи, если что-то еще всплывет. Хорошо, что ты держишь конвейер в порядке.
Получила дамп, сейчас загружаю. Проверю на предмет каких-нибудь остаточных проблем с выравниванием – если что-то еще будет вылезать, выпоймаем. Спасибо за патч; эта дополнительная проверка CRC должна убрать лишний трафик. Посмотрим, подтвердит ли данные теория.
Отлично—просто будь начеку, вдруг какие-нибудь непослушные фрагменты пробьются мимо новой защиты CRC. Если что-то всё же проскользнёт, будем копать буфер сборки. А пока что, давай надеемся, что данные совпадут с теорией. Хорошо, что мы позаботились о дополнительной подстраховке.
Буду начеку. Если что-то выскочит, вылоблю это из буфера до того, как закончим. Ну а пока, будем надеяться, все сойдется.