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