我在 Nexenta NCP 3 机器上运行了一个 TCP 服务器应用程序。我想限制它可以使用多少传出带宽。在 Solaris 中是否可以像在 Linux 中一样对应用程序进行速率限制?
我曾看到过对 IPQoS 和 Crossbow 的提及,但是找不到任何将它们联系在一起的内容。
答案1
弩很神奇。它可以做很多事情,非常简单。你要看的是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,但这并没有太大变化。如果您不需要区域,则不需要区域。很好,不是吗?
答案2
一种方法是将该应用程序安装在区域中。该区域将有一个专用的 vnic,并启用 crossbow 带宽限制。NAT 将用于允许传入/传出区域流量。