最近这几天,一直都在忙一个事情:写一个视频采集服务器,实现采集、存储点播等功能。

了解了一下需求,还有点吓人:

1 同时支持100个点 2 每个点传输的图片格式为640*480,单帧12K,一秒25帧,算下来300K/S

如果用100*300K/S= 30M/S,乖乖,还真不小。1S就是30M,光是采集,还要实现点播与转发,

服务器的压力可想而知。

为了更进一步的确认,我用第三方软件测试了网络传输的效率。结果如下:

环境:100M网络,普通PC2台。

测试的速度是:10M/S,跟别人的数据差不多。内存使用不高,CPU使用率100%。

计算测试数据如下:

10M/100M = 0.1S,存储:普通硬盘,读写速度维持在50M/S,10/50 = 0.2

这样实际上CPU能用给程序的处理时间只有1-0.3=0.7啦。

按照这个数据,那么我这100台视频采集的服务器应该要什么样的配置呢?

1 网卡,一般都普及了1000M级的,查了下,实际有效的传输速度可以达到100M/S。

  算下来,压力还没有100M网络传输10M的压力大,这里不会成为瓶颈。

2 磁盘:上面的分析也看到,磁盘消耗的时间比例还是比较大的。不过服务器硬盘的速度让人更惊讶:

  SAS15K转速的可以达到300M/S,SCSI的也可以。这个速度完全能够保证程序的快速写入要求。30/300  < 10/50

3 CPU和内存:目前10000-20000万的服务器,采用CPU都能达到intel X系列 E5开头的,4核心,频率2.0左右,

   前端1333M,二级缓存12288KB,内存则为2G以上,的667M内存。

如果按照这个数据,理论上单台X3650系列的服务器就可以满足的啦!

关键是看程序如何写稳定,有效率啦。同时与100个点保持高速的通信,是个很大挑战,还要保证它不容易挂掉,即使是挂掉了,也要很快恢复,

看来头发又要掉不少。

 

posted on 2009-07-16 14:33  小猴子  阅读(533)  评论(1编辑  收藏  举报