Должен ли я установить rto_min для маршрута внутри центра обработки данных?
У нас есть несколько выделенных серверов, арендованных в центре обработки данных с Debian 7, ядро 3.2.
Мы используем один из этих серверов в качестве сервера базы данных. Сеть между нашим сервером приложений и сервером базы данных не предназначена для нас, но используется другими клиентами центра обработки данных.
Время от времени мы распознаем ретрансляции TCP на этой линии. Мы думаем, что это связано с перегрузкой или ddos-атаками. Наш провайдер пытается предотвратить атаки, но, конечно, не всегда сразу же успешен.
Тем не мение. Обычно наш сервер приложений получает результаты из базы данных в течение 20 миллисекунд, поскольку серверы баз данных работают очень быстро, а среднее время прохождения (RTT) составляет 0,3 мс (то есть менее 1 мс).
Когда на этой линии теряется пакет TCP, наступает время ожидания повторной передачи (RTO). Оно рассчитывается по времени кругового обхода, но составляет не менее 200 мс. Поэтому, когда необходимо повторно передать один пакет, у нас есть 220 миллисекунд, прежде чем наш сервер приложений получит свои данные только из-за RTO.
Для меня rto_min=200 мс, кажется, путь к высокой для ссылки с rtt ниже 1 мс.
Можно установить rto_min с помощью ip
как это:
ip route change default via 144.76.176.65 dev eth0 rto_min 5ms
RTO по-прежнему рассчитывается, но может уменьшиться до 5 мс, поскольку наш RTT очень маленький.
Должен ли я рассмотреть это или есть другие подводные камни TCP я попаду в настройку rto_min так мало? Что такое разумное значение для rto_min или лучше его не трогать?