У меня есть приложение TCP-сервера, работающее на коробке Nexenta NCP 3. Я хотел бы ограничить, какую исходящую пропускную способность он может использовать. Возможно ли в Solaris ограничить скорость приложения, как я могу в Linux?
Я видел упоминания о IPQoS и Crossbow, но не могу найти ничего, что связывало бы все это вместе.
Арбалет УДИВИТЕЛЬНЫЙ. Он может очень просто делать многие вещи. Что вы хотите посмотреть, так это использование flowadm команда.
То, что вы хотите сделать, это всего лишь однострочную команду, которая будет выглядеть примерно так:
flowadm add-flow -l bge0 -a transport=UDP -p maxbw=100M, priority=low limit-udp-1
Очевидно, вы хотите заменить соответствующую информацию.
Вот еще один пример, который, скорее всего, вам больше подойдет.
flowadm add-flow -l xnf0 -a remote_ip=193.49.161.207,remote_port=43833 flow-tcp-app
flowadm set-flowprop -p maxbw=8M flow-tcp-app
Это все, что тебе нужно сделать. Возможно, вы смотрите на local_ip вместо remote_ip, но это мало что меняет. Зоны не нужны, если они вам не нужны. Красиво, не правда ли?
Один из способов сделать это - установить это приложение в зоне. В этой зоне будет выделенный виртуальный компьютер с включенным ограничением полосы пропускания арбалета. NAT будет использоваться для разрешения входящего / исходящего трафика зоны.