如何模拟高视频负载来对 SSD 进行基准测试?

如何模拟高视频负载来对 SSD 进行基准测试?

我正在尝试评估一些 SSD 是否适用于视频点播用例。我们已经对它们进行了一些基准测试,但我们想通过比典型基准测试工具更真实的负载测试来了解它们可以支持的视频流数量。

到目前为止,我已经完成了以下操作:

  • 用电影文件填充SSD
  • 将该 SSD 远程安装到其他服务器上
  • 从这些其他服务器运行一个脚本,该脚本会在其中一个文件上随机循环启动一堆 VLC 实例。(注意:VLC 实例正在使用这些选项运行,--vout dummy --aout dummy --codec dummy以便它连续请求文件,但不对其进行任何解码以节省 CPU)

我还有一个机顶盒,可以从同一个 SSD 解码。我们的想法是看看我们是否能够直观地注意到 SSD 性能何时开始下降。

我得到了不错的结果,但主要问题是负载服务器在抓取的流数量方面达到了极限(在 10-12GB RAM 的情况下,在 700-800 范围内)。这似乎是由于大量交换同时发生,导致负载iowait过高,使服务器几乎无法响应。

简而言之,我的问题是:

  • 这个设置有意义吗?
  • 你能想到其他方法来做到这一点吗?
  • 您能否想到一些调整,让负载服务器在一定数量的流之后不会变得无响应?(我尝试了一下,/proc/sys/vm/swappiness但似乎没有什么区别)

谢谢,

蒂姆

答案1

我从事视频点播系统,没有什么可以替代实际编写一些能够准确描述真实播放特性的代码。我们编写了一个称为“VODBasher”的代码,它使用我们在真实平台上实际使用的传输机制,并且我们从各地的真实位置运行它。这帮助我们了解我们在哪里会看到问题,在哪里不会看到问题。其他任何事情都只是猜测。

答案2

如果运行 700-800 个 VLC 副本,您的“负载服务器”(在此场景中充当客户端)上的内存实际上会耗尽,这似乎非常合理。每个实例仅使用 12-17MB 的内存,您的 10-12GB 内存就用完了。(因此,调整 swappiness 对您没有多大帮助也就不足为奇了)。

是否有特别的原因要真正用 vlc 加载电影(即使使用虚拟输出),而不是仅仅将其转储到/dev/null

相关内容