- 论坛徽章:
- 0
|
本帖最后由 hijoo 于 2013-11-19 02:40 编辑
我仔细看了下楼主的帖子,发现楼主的机器跟我曾经碰到的情况很像,我网吧曾经有台电影服务器,有6块硬盘,都是普通的SATA500G黑盘,接在主板自带的SATA2.0接口上,只要网吧超过20来个人同时看电影服务器就特别特别卡,卡的时候也是CPU,内存占用率都非常低,打开文件非常非常慢,我仔细计算了下,20个人同时看电影也是平均一块盘不到5个人看电影啊,就算电影文件再大也不可能卡。但我们忽略了一点极其重要的东西,假设一块盘只有一个人在看电影,则不管服务器上电影文件再大都是顺序读取,黑盘130M/S的读取速度足够应付了,假设一块硬盘有两个以上的人再看电影,他们几乎不可能同时看一个电影,此时硬盘需要同时读取两个以上的文件,则此时硬盘读取几乎100%是随机读取了,普通7200转的硬盘顶爆天90的随机IO,就算是15K盘顶爆了也是150的随机IO,设想一下,90IOPS的读取速度应付两个人同时看电影就已经看吃力了,更不要说更多的人了,所以网吧电影服务器6块盘超过20个人看电影不卡才怪。
后来我仔细请教了一些论坛上的大牛,发现这个问题其实最好的解决办法是内存缓存,RAID0随机IO的性能并没有提升,RAID0仅仅只是把连续读取的速度提高了,实际的随机IO还是无法提高,不相信可以测试,1块硬盘的4K随机性能与6块RAID0的4K随机性能几乎是一样的,为何仅测试4K随机性能呢?因为硬盘存储文件是以4K块为最小单位的,100%随机读取也是以4K块为单位的。在这种情况下哪怕RAID0 20块硬盘也是卡得要飞啊。
我建议楼主按以下步骤执行
1、首先要做的是把停用RAID0,RAID0不仅无法提升性能还会带来相当大的数据安全隐患。
2、在WINDOWS SERVER 2003上安装SuperCache软件,不管是盗版还是正版,只要能用就行,但不建议使用4.0以下版本。
3、把视频手工分类,将热门与不热门的视频分别存储在不同的硬盘里,如果条件不允许分类则跳过些步。
4、接下来要做的就是为6块硬盘分别设置不同大小的内存缓存空间,SuperCache是以分区为操作单位的,如果能执行第三步最好,内存缓存的作用非常大,如果无法执行第三步也没多大关系,我曾经4G内存,为每块硬盘设置的720M内存,每块盘的的缓存命中率已经达到20%了,虽然起不到太大作用,但已经好很多了。楼主有16G内存,拿14G做缓存,每块硬盘3.5G内存做缓存,我相信缓存的命中绝对能超过50%,这样,硬盘的负载就能轻松的减少一半,相应的,服务器的负载能力也提升了一半了。 |
|