Рандомная ошибка dial tcp: i/o timeout

Модератор: Модераторы разделов

Аватара пользователя
Dionysius
Сообщения: 473
ОС: Manjaro

Рандомная ошибка dial tcp: i/o timeout

Сообщение Dionysius »

Есть приложение, написанное на go. Представляет собой прокси-сервер, который при обращении к апстриму время от времени может сыпать ошибками вида

Код: Выделить всё

dial tcp: i/o timeout
. Приложение крутится в докере. Ирония в том, что один из апстримов слушается этим же приложением, т.е. находится на этом же сервере. Другие апстрим-серверы находятся в том же дата-центре.

Подскажите, куда вообще копать по поводу сетевого взаимодействия в такой ситуации? Почему это может происходить случайным образом?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 19421
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Рандомная ошибка dial tcp: i/o timeout

Сообщение Bizdelnick »

Нагрузка большая?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Dionysius
Сообщения: 473
ОС: Manjaro

Re: Рандомная ошибка dial tcp: i/o timeout

Сообщение Dionysius »

40-50rps
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 19421
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Рандомная ошибка dial tcp: i/o timeout

Сообщение Bizdelnick »

Уже не помню, сталкивался ли я с конкретно этой ошибкой, но на всякий случай проверьте, не упираетесь ли в лимит на число открытых дескрипторов (ulimit -n, у docker опция --ulimit nofile=<...>).
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Dionysius
Сообщения: 473
ОС: Manjaro

Re: Рандомная ошибка dial tcp: i/o timeout

Сообщение Dionysius »

Для докера задано высокое значение ulimit - 1048576. Должно хватать с избытком.
Спасибо сказали:
Аватара пользователя
Dionysius
Сообщения: 473
ОС: Manjaro

Re: Рандомная ошибка dial tcp: i/o timeout

Сообщение Dionysius »

Уточнение: на другом конце апстрима висит minio для отдачи изображений.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 19421
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Рандомная ошибка dial tcp: i/o timeout

Сообщение Bizdelnick »

Я вижу два варианта: либо хитро настроенный файрвол иногда отбрасывает пакеты, либо надо тюнить настройки сетевого стека, потому что в нём размер каких-нибудь буферов слишком маленький. А в dmesg ничего интересного нет, часом?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Dionysius
Сообщения: 473
ОС: Manjaro

Re: Рандомная ошибка dial tcp: i/o timeout

Сообщение Dionysius »

В dmesg ничего интересного не найдено, файрвола тоже нет. Копаю в сторону настроек сетевого стека.
Спасибо сказали:
Аватара пользователя
Dionysius
Сообщения: 473
ОС: Manjaro

Re: Рандомная ошибка dial tcp: i/o timeout

Сообщение Dionysius »

Настроил по статье https://www.cyberciti.biz/faq/linux-tcp-tuning/
Как раз ошибки валятся на больших файлах (изображения, видео). Теперь буду наблюдать.
Спасибо сказали: