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

标签 testing video streaming

有人知道我可以用来对视频流服务器进行压力测试的好工具吗?我需要测试我的服务器处理 5,000 多个连接的能力。

最佳答案

一种选择是使用 VLC。您可以在命令行中指定一个 url。 (有关详细信息,请参阅 here)。然后您可以编写一个简短的 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 个多播组的成员就足够了(不必对流做任何事情。通过不实际解码流,您将减少客户端的性能问题结束)。

我不知道有什么工具可以为你做这件事,但如果你准备编写自己的实用程序,你可以开始 here了解详情。

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

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

关于testing - 如何对视频流服务器进行压力测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/151392/

相关文章:

c# - EF 中的复合键有效吗?

Android Media Codec 视频解码

iframe - 使用 'large player'选项嵌入YouTube视频

android - android中流媒体视频文件的自定义搜索栏

ios - 如何在控制中心显示 "live"(swift iOS)

http - 如何为单个流提供多个连接?

testing - 使用 CMake + make 只运行一个测试

c# - 如何测试函数返回 IEnumerable<Integer>

testing - 黑盒测试还是白盒测试应该成为测试人员的重点?

linux - 如何以编程方式创建视频?