RTMP中如何限制每个流的输出带宽
How to restrict output bandwidth of each stream in RTMP
我有一个用于 RTMP 和 hls live 的数字海洋服务器 streaming.Is 我可以通过任何方式将每个流的输出带宽限制为 1mbps 或 1.5mpbs。
我已经尝试过 wondershaper,但它限制了整个服务器带宽,但我需要一些方法来限制 rtmp 和 hls 流的带宽。
就我个人而言,我会使用 cgroups
+ tc
或 iptables
。
在我的服务器上,我使用了一个名为 wondersharper
的工具
https://github.com/magnific0/wondershaper/blob/master/wondershaper
这可以限制给定网络接口上的带宽/吞吐量。我的 NGINX 服务器在带宽受限的虚拟网络接口上列出。
ip link add br0 type bridge
ip link set br0 up
另一种方法(但未测试)是 iptables
和 hashlimit
扩展。
https://ipset.netfilter.org/iptables-extensions.man.html
hashlimit uses hash buckets to express a rate limiting match (like the limit match) for a group of connections using a single iptables rule. Grouping can be done per-hostgroup (source and/or destination address) and/or per-port. It gives you the ability to express "N packets per time quantum per group" or "N bytes per seconds" (see below for some examples).
#matching bytes per second flows exceeding 512kbyte/s
--hashlimit-mode srcip,dstip,srcport,dstport --hashlimit-above 512kb/s
#matching bytes per second hosts that exceed 512kbyte/s, but permit up to 1Megabytes without matching
--hashlimit-mode dstip --hashlimit-above 512kb/s --hashlimit-burst 1mb
在研究 ipbtables 部分时我发现了这个
http://info.iet.unipi.it/~luigi/dummynet/
可在此处找到文档:\
https://www.freebsd.org/cgi/man.cgi?query=ipfw&manpath=FreeBSD+9-current&format=html
虽然那个看起来很有趣。
我有一个用于 RTMP 和 hls live 的数字海洋服务器 streaming.Is 我可以通过任何方式将每个流的输出带宽限制为 1mbps 或 1.5mpbs。
我已经尝试过 wondershaper,但它限制了整个服务器带宽,但我需要一些方法来限制 rtmp 和 hls 流的带宽。
就我个人而言,我会使用 cgroups
+ tc
或 iptables
。
在我的服务器上,我使用了一个名为 wondersharper
的工具
https://github.com/magnific0/wondershaper/blob/master/wondershaper
这可以限制给定网络接口上的带宽/吞吐量。我的 NGINX 服务器在带宽受限的虚拟网络接口上列出。
ip link add br0 type bridge
ip link set br0 up
另一种方法(但未测试)是 iptables
和 hashlimit
扩展。
https://ipset.netfilter.org/iptables-extensions.man.html
hashlimit uses hash buckets to express a rate limiting match (like the limit match) for a group of connections using a single iptables rule. Grouping can be done per-hostgroup (source and/or destination address) and/or per-port. It gives you the ability to express "N packets per time quantum per group" or "N bytes per seconds" (see below for some examples).
#matching bytes per second flows exceeding 512kbyte/s
--hashlimit-mode srcip,dstip,srcport,dstport --hashlimit-above 512kb/s
#matching bytes per second hosts that exceed 512kbyte/s, but permit up to 1Megabytes without matching
--hashlimit-mode dstip --hashlimit-above 512kb/s --hashlimit-burst 1mb
在研究 ipbtables 部分时我发现了这个
http://info.iet.unipi.it/~luigi/dummynet/
可在此处找到文档:\
https://www.freebsd.org/cgi/man.cgi?query=ipfw&manpath=FreeBSD+9-current&format=html
虽然那个看起来很有趣。