如何对视频流服务器进行压力测试?

时间:2020-03-06 14:54:13  来源:igfitidea点击:

有谁知道我可以用来在视频流服务器上执行压力测试的任何好的工具?我需要测试服务器处理5,000多个连接的性能。

解决方案

开始下载具有不同连接的5000多个相同类型的文件。确实不需要播放它们,因为从本质上来说,客户端视频播放器,Flash,Windows Media Player等将只是在进行下载。因此,如果服务器可以处理5000多次下载,则可以。我敢打赌,带宽在我们投放服务器之前就已经释放了。

一种选择是使用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的存在。