视频服务器需要多少份文件?

视频服务器需要多少份文件?

一个简单的问题。视频服务器(视频流服务器)中保存了多少份同一部电影的副本?假设同一时刻最多有 1000 名用户请求某个特定视频,那么有多少份副本足以为每个用户提供并行流?理想情况下,一份副本就可以解决问题,但考虑到带宽和同时访问,最佳数量是多少?

答案1

答案取决于流媒体服务器的实现。如果它是线程化的,那么它应该为该文件维护一个内存缓冲区。但是,如果文件非常大(一小时的视频可以使用超过 1 GB 的内存),那么服务器可能需要适当地管理内存中的文件部分。一种方法是内存映射文件(但是,如果视频的总大小太大,这可能会失败)。许多视频文件类型提供足够的信息来了解要加载视频的哪些部分以将特定的一组帧发送到客户端。

如果您正在流式传输 1Mbps 视频;在 1000 个客户端中,您将同时向客户端发送 1Gbps(不包括开销和可变峰值)。您需要从服务器获得 10Mbps 的上行带宽才能实现这一点。否则,您需要将其拆分到各个服务器。

答案2

您不需要多个副本,因为如果 1000 个同时用户请求该副本,它就会已经在 RAM 中了。

答案3

通常,Web 服务器只会拥有文件的一个副本并根据请求将其加载到内存中 - 但我没有看到任何 Web 服务器编写得如此糟糕以至于将 1000 份文件副本加载到内存中。

顺便说一句,对于一台服务器来说,同时处理 1000 个请求有点多……

也许您想建立一个具有多台服务器的负载平衡方案?

答案4

在大多数情况下,复制更多副本只会使问题变得更糟。如果您有多个驱动器,那么在每个驱动器上复制非常受欢迎的电影可能会带来一些好处。如果您同时在不同的地方读取同一个文件/流,这将减少寻道的需要。

但是,如果您一次读取多个版本的文件,那么在单个驱动器上拥有多个副本只会使寻道的大小更大。如果电影存储在 RAM 或 SSD 中,那么寻道就不是问题,但空间才是问题,因此您只需要一个副本即可最大限度地利用 RAM 或 SSD 空间。

相关内容