新手學(xué)wordpress武漢網(wǎng)站seo德升
基于mediasoup的webrtc server,進(jìn)行性能壓測時發(fā)現(xiàn),在1gbps的網(wǎng)絡(luò)條件下,帶寬利用率在40%(400Mbps)時,就會出現(xiàn)過高丟包率的(packet loss > 10%)的情況。這個結(jié)果是合理的嗎?如果不合理,要如何提升性能?
研究發(fā)現(xiàn),不同vps提供商網(wǎng)卡驅(qū)動能力不同,這可能跟選擇的vps配置有關(guān)系。一些vps的網(wǎng)卡mtu設(shè)置為9001,另一些vps的以太mtu設(shè)置為1500。在局域網(wǎng)LAN中,mtu=1500。關(guān)于rx/tx ringbuffer size,一些vendor是2048,單隊列。而一些vendor卻只有256,多隊列(4個queue)。并且這些參數(shù),在vps上,是不能修改設(shè)置的。
一般vps都是按流量計費(fèi)的,且?guī)挸杀?gt;90%。streaming的帶寬利用率低并不會導(dǎo)致成本的增加,因此,并沒有迫切需求要提升效率。
實測表明,1gbps網(wǎng)絡(luò)條件(mtu=1500, tx/rx ringbuffer size=256, 單隊列)下,mediasoup SFU的帶寬利用率為40%(packet loss < 10%)。
設(shè)置優(yōu)化參數(shù)后,重做測試。
網(wǎng)絡(luò)環(huán)境:1gbps networking + vm虛擬機(jī)(debian11)
# ethtool -G ens33 rx 4096
# ethtool -G ens33 rx 4096
# vi /etc/sysctl.conf
# For RTC
net.core.rmem_max=16777216
net.core.rmem_default=16777216
net.core.wmem_max=16777216
net.core.wmem_default=16777216
重啟網(wǎng)絡(luò)服務(wù)service networking restart似乎不生效,估計得重啟vm。
# 查看UDP緩沖區(qū)長度,默認(rèn)只有200KB左右。
sysctl net.core.rmem_max
sysctl net.core.rmem_default
sysctl net.core.wmem_max
sysctl net.core.wmem_default
# 修改緩沖區(qū)長度為16MB
sysctl net.core.rmem_max=16777216
sysctl net.core.rmem_default=16777216
sysctl net.core.wmem_max=16777216
sysctl net.core.wmem_default=16777216
調(diào)整參數(shù)后,性能提升了30%左右,也就是說,帶寬利用率達(dá)到50%以上,并且不再有嚴(yán)重的丟包問題。