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

Alv*_*vin 20 testing video streaming

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

And*_*mbe 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
}
Run Code Online (Sandbox Code Playgroud)

如果您的视频流服务器正在执行多播,那么打开套接字并使它们成为您的 5000 个多播组的成员就足够了(不必对流做任何事情。通过不实际解码流,您将减少客户端的性能问题)。

我不知道有任何工具可以为您执行此操作,但是如果您准备编写自己的实用程序,则可以从此处开始了解详细信息。

编辑:第二个选项假设您的客户端计算机上的操作系统具有多播功能。我提到这一点是因为(从记忆中)Linux 内核在默认情况下不是这样,我想为您省去那种痛苦。:-)

判断的简单方法(再次在 Linux 上)是检查是否存在 /proc/net/igmp