有谁知道我可以用来在视频流服务器上执行压力测试的任何好工具?我需要测试我的服务器处理 5,000 多个连接的能力。
6 回答
一种选择是使用 VLC。您可以在命令行上指定一个 url。(详见此处)。然后,您可以编写一个简短的 shell 脚本来打开所有 5000 个连接。
例如。以下 perl 脚本(非常快速的 hack - 运行前检查,可能会导致爆炸等)
$i = 0;
$myurl = "udp://someurl";
@cmdline = ("/usr/bin/vlc", "");
for( $i = 1; $i <= 5000; $i++ )
{
if( $pid = fork )
{
# parent - ignore
}
elsif( defined $pid )
{
$cmdline[1] = sprintf "%s:%d", $myurl, $i;
exec(@cmdline);
}
# elseif - do more error checking here
}
如果您的视频流服务器正在进行多播,那么打开套接字并使其成为 5000 个多播组的成员就足够了(不必对流进行任何操作。通过不实际解码流,您将减少客户端的性能问题)。
我不知道有任何工具可以为您执行此操作,但如果您准备编写自己的实用程序,您可以从这里开始了解详细信息。
编辑:第二个选项假定您的客户端计算机上的操作系统具有多播功能。我提到这一点是因为(从记忆中)linux内核默认情况下不是,我想为你省去那种痛苦。:-)
简单的判断方法(再次在 Linux 上)是检查是否存在/proc/net/igmp
开始下载具有不同连接的 5000 多个相同类型的文件。真的不需要播放它们,因为基本上客户端视频播放器、flash、Windows 媒体播放器等只会进行下载。因此,如果您的服务器可以处理 5000+ 次下载,那您就可以了。我敢打赌,您的带宽会在您的服务器之前发出。
对于基础架构,您可以使用 JMeter SAAS 或您自己的云服务器来克服注入器可能出现的网络问题。
为了重现用户体验并获得关于用户体验的宝贵指标,您可以使用Apache JMeter + 这个商业插件,它可以真实地模拟玩家的行为,而无需任何脚本:
这个插件还提供了模拟自适应比特率流的能力
免责声明:我们支持此解决方案的开发
一个新的 JMeter 插件已经发布,通过仅使用一个自定义采样器来帮助模拟 HLS 场景。现在,您不需要多个 HTTP 请求采样器、ForEach 控制器或 RegEx 后处理器。这使得整个过程比以前简单得多。
相反,完整的逻辑被无缝封装,因此您只需要关心用例:媒体类型、播放时间和网络条件。就是这样!该插件是全新的,可以通过 JMeter Plugins Manager 安装。
在这里您可以了解更多信息:
https://abstracta.us/blog/performance-testing/how-to-run-video-streaming-performance-tests-on-hls/
我也在寻找相同的答案,我遇到以下工具可能对某人有帮助http://www.radview.com/Solutions/multimedia-load-testing.aspx
此工具用于测试视频流。希望它可以帮助某人。如果我得到一个更好的答案,我会更新答案。
谢谢。
该HLS Analyzer软件可用于对 HTTP Live Streaming 服务器进行压力测试和监控下载性能。