Каждый вызов чтения / записи Socket / SocketChannel включает в себя ряд синхронизаций.Вы можете ограничить скорость, с которой вы записываете данные, но попытка ограничить скорость, с которой вы читаете данные, вряд ли окажет большое влияние, она просто определит объем буферизации, а не скорость передачи данных.
Стоит отметить, что синхронизация обойдется в 2 микросекунды.Как только вы ограничите количество отправляемых данных, вы задержите гораздо большую цифру, скажем, от 100 до 100 000.
Я предлагаю вам внедрить что-то простое и работающее, а потом подумать об оптимизации.