zoukankan      html  css  js  c++  java
  • 互联网直播/点播平台直播时单路视频在线用户并发到300时服务器出现500错误

    因为近期互联网直播/点播需求量激增,我们在项目对接时也遇到各种各样关于视频直播和点播的问题。今天就为大家分享一个并发报错的案例。

    提出问题

    用户在使用互联网直播/点播平台EasyDSS进行视频会议直播过程中,单路视频的在线用户到300人左右就出现无法响应的问题,服务器报500错误。对系统进行重启后,服务会再次挂掉。

    分析问题

    沟通得知,互联网直播/点播平台的系统使用与并发均在局域网中,用户使用浏览器观看。通过运行日志查看,300个连接出现500错误,是底层开的 http 请求过多导致,也叫做linux系统打开文件数过多,引发数据库访问失败,整个程序就全部不能正常执行了。除了ceph本身相关参数设置外,还可以修改 linux最大打开文件数和数据库迁移。

    解决问题

    第一步:增加连接数
    首先查看当前系统最大的文件打开数,运行如下命令,先对服务器当前设置的文件数查看:

    root@iZj6cj2eq1jzcj0fzwz7f5Z:~# ulimit -Hn
    4096
    root@iZj6cj2eq1jzcj0fzwz7f5Z:~# ulimit -Sn
    1024

    返回的结果是 1024,这个不够用,那么我就修改一下。客户目前是4台服务器通过转推的形式同时运行,每台服务器平均并发量为500。

    如果以最大的量,300个用户,一个用户同时过来5个连接,再加上软件内部还要维护一层连接,300 X 5 X 2,最大可能会 3000 个。当然一般不会到3000,因为很多请求来了就会关闭掉。一个用户一个连接(这里的连接指的是 http 请求,一个请求就算一个连接)

    根据这修改打开文件数量的上限
    root@iZj6cj2eq1jzcj0fzwz7f5Z:~# sysctl -n -e fs.file-max
    4069
    根据这修改打开文件数量的上限,在 /etc/security/limits.conf 文件里,最后加上

    • soft nofile 3500
    • hard nofile 3500

    然后重启 nginx 推出重进

    第二步:数据库迁移到mysql
    当用户数很多的时候,建议将数据库迁移至 mysql使用。系统默认采用的数据库是sqlite,对并发量的支持很少。当然 mysql也需要查看访问 mysql的软件,如果每个软件里面都没有释放数据库链接,可能也不行。

  • 相关阅读:
    Codeforces Round #592 (Div. 2)C. The Football Season(暴力,循环节)
    Educational Codeforces Round 72 (Rated for Div. 2)D. Coloring Edges(想法)
    扩展KMP
    poj 1699 Best Sequence(dfs)
    KMP(思路分析)
    poj 1950 Dessert(dfs)
    poj 3278 Catch That Cow(BFS)
    素数环(回溯)
    sort与qsort
    poj 1952 buy low buy lower(DP)
  • 原文地址:https://www.cnblogs.com/EasyNVR/p/12886861.html
Copyright © 2011-2022 走看看