
Я хочу замедлить исходящий трафик, когда он сталкивается с перегрузкой, и измерить "перегрузку" по времени ответа пакетов. Цель состоит в том, чтобы не допустить, чтобы один клиент NFS истощал все остальные клиенты при выполнении больших записей.
Я прочитал много руководств, руководств и ответов на вопросы об ошибках сервера, связанных с регулированием трафика tc, но все они, как правило, начинаются с выбора произвольного ограничения пропускной способности, а мне бы очень хотелось, чтобы система автоматически подстраивалась под себя при улучшении наших сетевых компонентов.
решение1
То есть ваши клиенты используют общий маршрутизатор для связи с интернет-сервером NFS?
Если это маршрутизатор Linux и у вас есть tc
такая возможность, то я думаю, что вы действительно выиграете от ограничения исходящей скорости чуть ниже лимита вашего интернет-провайдера, справедливой организации очередей, например SFQ, и предоставления приоритета небольшим пакетам (например, TCP ACK; см. примеры в Wondershaper).
Замедление соединений из-за перегрузки буферов вашего интернет-провайдера большими загрузками — классическая проблема, которая устраняется путем ограничения исходящего трафика до уровня ниже лимита вашего интернет-провайдера, а затем разрешения вашему маршрутизатору формировать исходящий трафик, например, с помощью SFQ, и назначения приоритетов пакетам управления TCP для уменьшения задержки.