如何防止Linux下的IO负载video服务?

目前我正在3台服务器上通过Nginx提供会议video。 4个内核,足够的内存(不使用交换机)和每个服务器8个驱动器的RAID-10。 不幸的是,iostat -xd 1在所有3个服务器上给我100%,iotop显示Nginx的吞吐率达到99-100%。

我一直在考虑分布式FS(但是哪一个会有帮助?); 任何其他方式来防止这种情况,而不只是购买新的服务器(涉及所有的开销…)?

请注意,这是不可能的video内存; 太多了,太大了。 记忆中只有less数人的分布也不好。

我的工作是build立大型(大于100万用户)的商用VoD系统,除非你可以利用多播/任播,不使用CDN,那么你只有一个select,那就是扩展你的存储系统和networking来处理最大的并发IO加载你需要的。

当然,本地caching,你可以帮助,但我总是把我们的拖放大小,以承担零caching。 显然,我们的使用情况将有所不同,但是如果您有相对较小的video目录,则可以考虑将您的内容放在基于SSD的卷和/或基于PCIe的闪存(如FusionIO套件)上(还有其他这类制造商这些天的事情,但作为FIO是第一块,他们是我所知道和相信最好的)。 当我们build立了这种types的第一个重要的平台时,我们最终使用了数以万计的72GB 2.5“SAS磁盘,以确保我们有足够的随机读取能力,因为这是您所需要的,逻辑上说,关于顺序性能,因为video内容只是大文件,但是当你有很多人从不同的起点播放不同的video时,这种types的caching几乎不在窗口,你需要获得最好的随机读取性能。同样重要的是要确保从磁盘到networking端口的高效path,除了了解磁盘/控制器/总线/网卡和驱动程序之外,没有简单的方法来进行优化。

顺便说一句,文件系统的改变不太可能让你过去这个问题。