找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 174|回复: 17

高并发流媒体服务器寻求解决方案

[复制链接]

10

主题

111

回帖

302

积分

中级会员

积分
302
发表于 2013-1-8 23:18:55 | 显示全部楼层 |阅读模式
本帖最后由 newphp 于 2013-1-8 23:20 编辑

我现在遇到一个非常纠结的问题。
公司做的是E文视频站,因为成本的问题,没有做分布式架构,现在就只用一台服务器,12块2T的硬盘,1G的带宽,12块硬盘做了raid0,做视频流的。
现在的问题是某些热门片子请求量太大,做了raid0的硬盘都遇到了IO瓶颈。
因为在FB上在做推广,有时候一个几百M的文件,同时被一百多个人请求,导致IO wait非常高,正常情况下带宽跑500M带宽没问题,非常轻松,当只要某一个文件被大量请求的时候,带宽最多只能跑120M。
如果是小文件可以用squid或varnish来做缓存,但是文件太大,有点不太现实,服务器上现在近10T的mp4。
这里说的某一个文件,这个文件不固定,可能这个小时是a.mp4,过了一个小时就是b.mp4,再过一个小时又是x.mp4,完全是随机的,无法精确到某一个文件。

现在我只能人肉检测,预先将一部份文件,比如说今天更新的片子,移到/dev/shm,然后监测只要发现某个文件请求量有升高的趋势,我现在是用lsof -c httpd获得文件被打开的情况,马上就把它复制到/dev/shm,然后再将原文件改名,并做软链接到/dev/shm里所对应的文件。
现在正在写自动检测程序,让机器去做那些机械的工作。

就是不知道有没有其它更好的解决方案,能缓解硬盘IO的问题,分布式因为成本的问题就不用考虑了。
回复

使用道具 举报

775

主题

5702

回帖

1万

积分

论坛元老

积分
13763
发表于 2013-1-8 23:20:02 | 显示全部楼层
找专业人士

回复

使用道具 举报

0

主题

37

回帖

82

积分

注册会员

积分
82
发表于 2013-1-8 23:27:13 | 显示全部楼层
有1G的带宽可以用啊,这个费用随便分出一点来就能买十台服务器了吧
回复

使用道具 举报

450

主题

2137

回帖

5676

积分

论坛元老

积分
5676
发表于 2013-1-8 23:28:16 | 显示全部楼层
做这个只有p2p才是王道!否则做不大,大了必死!
回复

使用道具 举报

39

主题

319

回帖

793

积分

高级会员

积分
793
发表于 2013-1-8 23:32:25 | 显示全部楼层
ssd缓存量大的
回复

使用道具 举报

4

主题

27

回帖

76

积分

注册会员

积分
76
发表于 2013-1-8 23:36:54 | 显示全部楼层
raid0?真是牛逼啊。一块坏了,数据全部丢失,起码做个raid5。我怎么感觉这样的话,速度应该很快的啊。读速度应该是n块的总和
回复

使用道具 举报

10

主题

111

回帖

302

积分

中级会员

积分
302
 楼主| 发表于 2013-1-8 23:39:35 | 显示全部楼层

拉里佩奇 发表于 2013-1-8 23:36



raid0?真是牛逼啊。一块坏了,数据全部丢失,起码做个raid5。我怎么感觉这样的话,速度应该很快的啊。读速 ...

raid0的写入速度没话说,但是读取速度在频繁单读某个区域的时候跟单盘差不多。
如果用raid5还不如用raid6,raid6在写方面不行,在读方面性能非常好。
回复

使用道具 举报

39

主题

319

回帖

793

积分

高级会员

积分
793
发表于 2013-1-8 23:36:00 | 显示全部楼层
不是全部用ssd 程序判断热片就转移到ssd 一定时间没请求就删除
回复

使用道具 举报

28

主题

500

回帖

1100

积分

金牌会员

积分
1100
发表于 2013-1-8 23:41:20 | 显示全部楼层
本帖最后由 Zeraba 于 2013-1-8 23:54 编辑

我正想试试
如果是nginx
带上--with-file-aio编译
内核2.6.22+
然后修改nginx.conf中相应部分[ol]
  • ...
  • location / {
  •   aio on;
  •   directio 1;
  •   output_buffers 1 128k;
  • }
  • ...[/ol]复制代码我还没来得及测试 大文件不知道如何 小文件应该是可以的
    nginx aio 不用等待每次 io 的结果有助于并发处理大量 io 和提高 nginx 处理效率
    我下午看的vpsee.com里面的博文

    如果I/O wait到了100% 考虑下其他raid 没到应该可以用程序稍稍优化 不过效果不大
    最好还是分布式 再买些两手硬件 用这些硬盘再组出两台 性能次要 是最好的了
    我就能想到这么多 等大牛来
  • 回复

    使用道具 举报

    0

    主题

    1

    回帖

    4

    积分

    新手上路

    积分
    4
    发表于 2013-1-8 23:41:36 | 显示全部楼层
    降低视频质量减小文件大小参考一下爱奇艺,优酷,letv吧,有电脑端p2p,ipad之类也可以走p2p分流的
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|Discuz! X

    GMT+8, 2025-1-13 15:47 , Processed in 0.021217 second(s), 8 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表