今天正好有80Gbps的万兆网络环境,写了一个压力测试工具,对比了一下各种流媒体服务器,在超级并发下的性能如何,原来听说intel的万兆网卡有问题,只能跑到不到的理论带宽,这点我测试过了,用intel最新的驱动,centos6,最次能跑到80%的理论带宽,最高能跑到95%以上,完全没有问题,需要注意的是nginx 采用异步架构,因为rtmp协议实际上损失了部分性能,实际上http的性能比这个更高。http跑到过72Gbps,带宽的90%。
nginx-rtmp做edge的配置:
rtmp {
listen 1935;
application edge{
live on;
pull rtmp://127.0.0.1:2935/live;
}
}
}
也就是说,源站的播放地址是:rtmp://192.168.1.50:2935/live/livestream,而边缘的播放地址是:rtmp://192.168.1.50:1935/edge/livestream
Wowza2的配置:
修改:/usr/local/WowzaMediaServer/bin/startup.sh
多分配内存,否则无法支持8k连接:-Xms2024m -Xmx6048m
java -server -Djava.net.preferIPv4Stack=true -Dcom.sun.management.jmxremote=true -Xms2024m -Xmx13048m -Dcom.wowza.wms.AppHome=/usr/local/WowzaMediaServer -Dcom.wowza.wms.ConfigURL= -Dcom.wowza.wms.ConfigHome=/usr/local/WowzaMediaServer -cp /usr/local/WowzaMediaServer/bin/wms-bootstrap.jar com.wowza.wms.bootstrap.Bootstrap start
修改Ping超时设置:
/usr/local/WowzaMediaServer/conf/live/Application.xml
60000000
12000000
Wowza3的配置:
修改:/usr/local/WowzaMediaServer/bin/startup.sh
多分配内存,否则无法支持8k连接:-Xms2024m -Xmx6048m
$_EXECJAVA -server -Xms2024m -Xmx13048m -Djava.net.preferIPv4Stack=true $JMXOPTIONS -Dcom.wowza.wms.runmode="$mode" -Dcom.wowza.wms.native.base="linux" -Dcom.wowza.wms.AppHome="$WMSAPP_HOME" -Dcom.wowza.wms.ConfigURL="$WMSCONFIG_URL" -Dcom.wowza.wms.ConfigHome="$WMSCONFIG_HOME" -cp $WMSAPP_HOME/bin/wms-bootstrap.jar com.wowza.wms.bootstrap.Bootstrap start
修改Ping超时设置:
/usr/local/WowzaMediaServer/conf/live/Application.xml
60000000
12000000
测试数据如下。
Test 5k Clients
5.5k的数据如下:
比起Wowza2,后者的效率高20%,内存使用只有10%,延迟极佳。wowza3的CPU/Mem/Load就是一坨屎。
Test 8k Clients
8k连接的数据如下:
21/212>