数据传输速度硬件configuration

首先,如果这个问题变得有点分散,我感到抱歉,这个问题对我来说已经有一段时间了。

这是一个小小的背景:我运营一个教育网站,提供在线课程video点播。 4年来,我们使用全球6台Wowza专用服务器托pipe了我们所有的媒体,以提供我们的媒体。 我们的成本是每月1500美元左右。

为了提高服务质量,我们招募了一个性能良好的CDN,但是现在我们的托pipe成本已经高达6000美元/月了,我们想回到自己托pipe98%的水平,只把CDN外包给我们最后的手段与翻转脚本。

当我们有我们自己的专用服务器时,我们通常会使用2X四核2.66GHz瓦特/ 16GB内存和2个SSD的RAID0。 尽pipe我们从同一个托pipe公司订购了同样的东西,但是在世界的不同地区,我们会注意到很大的性能差异,这似乎是在硬件上,而不是在networking层面。

我们达成了一个价格合理的协议,但是现在我一直在试图确定如何为我所需要的最佳性能做决定。

================================

现在我的问题

假设我想要最好的数据传输/寻找时间来提供最高数量的同步video? 如果我一次有1000个在线用户,他们最多可以同时打开250-400个单独的video文件。 我意识到我可以获得8个SSD SAS驱动器,并将它们放入RAID中,但处理器或RAM如何?

在ebay上看,我看到的东西,如:

PowerEdge R810 1U Server (4X) 1.87GHz Eight-Core Xeon L7555 192GB RAM POWEREDGE R810 SERVER FOUR X7550 2.0GHZ 96GB 

从处理器的angular度来看,我可以find8MB-30MB三级caching,但这真的很重要吗? 我最好用2个四核处理器,还是我需要4个8核心才能真正发挥出最大的功效呢?

我从软件供应商那里了解到,当打开多个文件时,更多的内存更好,但是总的来说,他们拒绝给出更多关于什么types的硬件实际上会给你一个特定结果的细节。 他们只是说:

 http://www.wowza.com/products/streaming-engine/specifications High-load recommended production hardware CPU: Dual Quad-Core or a single Hex-Core, 3.00 GHz or better RAM: 16-32GB Disk: 2 or more in RAID 0 (striping) Network: 10Gbps Ethernet 

这很好,但是没有说明这个configuration会带来什么结果。 我通常在任何一天都需要能够在一整天的时间里stream出15000个video,同时有1500个峰值。 从带宽的angular度来看,如果硬件能跟上,我可以通过一个互联网连接来实现。 我知道有多个地点是有好处的,但是如果我能找出硬件问题,我仍然可以节省5万美元/年。

最后,我想我想知道如果我有一个超高性能的RAID,接下来我需要担心的是什么? 我应该只关注时钟速度,L3caching,RAM吗?

=================================

更新:

我购买了一台新的服务器,并且正在学习关于RAIDconfiguration和性能的更多信息,如果你想跟随,你可以在这里看到下一部分的故事:

新的RAID hdparm慢

我不认为可以这样说:购买X,安装Y,你的问题将立即解决。 这需要经过几次迭代才能完成,而且当你不可避免地出现瓶颈时,你需要做更多的工作。 大多数情况下,我将避免推荐特定的硬件,因为在点击提交button时,这些硬件会过期。

因此,由于我们没有关于瓶颈的数据,所以假设这是一个绿地项目。 这是我将如何处理它:

  1. videostream不需要太多的内存或CPU,但它确实需要快速存储。 假设四个400GB SAS SSD在RAID 10中可用空间为800GB,可以存储您的video。 不过,如果您计划在未来几年内提供更多的video服务,您可能需要增加这个function。 比如说,四个800GB SAS SSD的RAID 10,可用空间为1600GB。
  2. 在网卡上不要便宜。 您的网卡至less应该支持TCP / IP卸载(即使最终不使用它),接收端扩展和接收端联合。 某些网卡(如英特尔的网卡)具有提高性能的更多function 。 你可能花一点时间研究这个。
  3. 虽然您需要注意并确保您的服务器的networkingconfiguration和调整良好,但networking吞吐量问题有时是networking基础架构的错误。 如果你不能控制这个,就要准备好和你的数据中心进行很多争论。 特别是,确保不要购买一个networking端口,这个networking端口会被限制在链路速度的一小部分,并且数据中心实际上拥有足够的带宽来适应高峰时段的需求。
  4. CPU并不重要,但确实很重要。 networking服务器不会使用太多的CPU,但是处理来自网卡的中断可以使用与networking服务器一样多的CPU,而且可能更多。 你可能不需要顶部的东西,但是你也不应该在这里便宜。
  5. 如果您使用双CPU系统,您将需要进行额外的调整工作。 在这样的系统中,每个CPU可以快速访问一半的RAM,而另一半则可以更慢地访问,反之亦然。 这就是所谓的NUMA,您需要注意与您的Web服务器相关的瓶颈或在一个CPU上运行的中断处理,并从另一个CPU访问内存。 Linux确实包含了帮助你处理这个问题的工具。
  6. 你不需要那么多的RAM来为video提供服务,但是你的服务器将会利用你所能提供的所有内存,作为一个非常快速的磁盘caching。 我想,你不可能在这里遇到瓶颈,所以我会从小处着手,必要时升级内存。 32GB可能会有一个好的开始; 除非你已经知道你需要它,否则192GB将会过度。
  7. 我会使用nginx web服务器。 我总是这么做,因为默认情况下,它比Apache更能够处理数千个并发连接。 您可能需要增加系统上的文件描述符的数量。
  8. 我将在Red Hat Enterprise Linux 7上构build这个版本,并且在服务器的生命周期中购买并保持激活状态 。 除了红帽全面的分发和性能调优 文档及其丰富的知识库之外 , 红帽支持还可以帮助您识别和解决出现的瓶颈问题,这很容易让您接受。
  9. 准备在情况许可的情况下升级组件。 您可能需要根据在投入生产后发现的实际问题升级NIC,RAM或CPU。
  10. 所有这一切都假设你正在构build多个服务器,并且这些请求之间的负载平衡。 您应该使用比他们需要更多容量的服务器来构build服务器,以便在出现故障或需要重新引导,升级等情况下,其余部分可能会占用这些空间。