bystand3r
V2EX  ›  问与答

网游服务器一个诡异的问题,求帮助

  •  
  •   bystand3r · Jun 9, 2015 · 4387 views
    This topic created in 4176 days ago, the information mentioned may be changed or developed.
    公司做网游的,最近在线人数在增长,不过在晚上高峰时候出现突然掉线的情况。经过我们观察,同时在线达到32000左右的时候服务器就会卡一下,导致4、5千人掉线……分析了各种原因,也问过机房是否有相关限制,都没有解决。

    我们游戏内的部分界面是由webview实现的(比如个人资料修改什么的)
    web方面的架构(Linux、Nginx、php、Mysql)
    游戏方面的架构(Windows、游戏各个服务组件、SqlServer)

    出现问题是时间是晚上8-9点左右,高峰时段,具体时间不定,状况为在线人数达到32000时SqlServer进出口流量飙升,负载上升(由于web那边很多数据需要使用SqlServer,连带着Linux负载也很高),然后就是疯狂掉线到20000多人才好,之后由于高峰过去的原因(还有部分玩家没有再回来)本日的同时在线就不能再跑到30000多了。

    我们对比了服务器上的数据,在线31000以下的时候服务器都很正常,负载也不高,各项指标都很平稳……但一达到上述的临界点就悲剧了……

    求大神指点,可能是什么地方出现的问题???跪谢~
    23 replies  •  2015-06-10 10:56:36 +08:00
    402645707
    402645707
    Jun 9, 2015 via Android
    1
    不贴
    402645707
    402645707
    Jun 9, 2015 via Android
    2
    日志和系统性能占用图表没人知道是为什么
    可能和内存 或路由配置并发连接有关
    SakuraSa
    SakuraSa
    Jun 9, 2015
    3
    会不会是由于缓存设置得不够大,热数据超出缓存大小后,导致一部分热数据不断被重新加载的原因呢?
    我也没经验,就是一猜……
    fangjinmin
    fangjinmin
    Jun 9, 2015
    4
    单从你的描述不好判断是什么原因。你说的32000人在线的时候会出现卡顿,可能是个表象。
    最好是查一下SQLSEVER的8点到9点的日志,看一下都有过什么样的检索导致的。
    cevincheung
    cevincheung
    Jun 9, 2015
    5
    没有足够的信息可以去判断症状。或许你需要补充更多的日志信息。
    fxxkgw
    fxxkgw
    Jun 9, 2015
    6
    sysctl -a 里面的net.ipv4.****这些参数配置可以检查下
    benjiam
    benjiam
    Jun 9, 2015
    7
    netstat -s 里面看 为什么断开了连接
    oott123
    oott123
    Jun 9, 2015 via Android
    8
    我猜是 32767 人的时候开始掉线…
    402645707
    402645707
    Jun 9, 2015 via Android
    9
    @oott123 那应该掉线到16383.XD
    yahoo21cn
    yahoo21cn
    Jun 9, 2015
    10
    3楼说的有道理
    RemRain
    RemRain
    Jun 9, 2015
    11
    # fgrep -C3 32000 /usr/include/linux/ext2_fs.h
    /*
    * Maximal count of links to a file
    */
    #define EXT2_LINK_MAX 32000


    @oott123 我猜他们的文件系统是 ext2
    sivacohan
    sivacohan
    Jun 9, 2015 via Android
    12
    @oott123 32767是什么梗?
    finab
    finab
    Jun 9, 2015
    13
    @sivacohan 溢出了
    scr
    scr
    Jun 9, 2015
    14
    我猜是某个自增字段溢出了.
    bystand3r
    bystand3r
    OP
    Jun 9, 2015
    15
    @finab 这个我们已经排查过……程序上没有这方面的问题
    @RemRain 游戏服务器是windows的,文件系统是NTFS
    xenme
    xenme
    Jun 9, 2015
    16
    既然是突然 SQL 流量飙升,就看看是哪里的请求导致的流量飙升么
    pheyer
    pheyer
    Jun 9, 2015
    17
    2的15次方是32786
    xiaowangge
    xiaowangge
    Jun 9, 2015
    18
    服务器用得哪家云?

    没有监控?报表?

    Memcached 用没用?
    bystand3r
    bystand3r
    OP
    Jun 10, 2015 via iPhone
    19
    @pheyer
    @xiaowangge
    多台自家服务器。数据库最小的整数类型也是int无符号,不存在32767溢出的问题。
    经过排查感觉是某个网关服务器负荷过高了,也有可能是短链接没有及时释放的问题,症状还没有解决……还在纠结中😭
    ETiV
    ETiV
    Jun 10, 2015
    20
    "状况为在线人数达到32000时SqlServer进出口流量飙升"

    我不知道 sql server 有没有类似 MySQL的general-log 的开关, (之前搜过, 貌似叫什么服务监视器?)

    看这飙升时间段内的所有发过来的 SQL 语句, 并日志记录下来. 看那些最多, 再做进一步排查.
    molinxx
    molinxx
    Jun 10, 2015 via Android
    21
    难道是西山居?今天攻防卡掉一片一片的~
    pheyer
    pheyer
    Jun 10, 2015
    22
    @bystand3r 如果不是数据库呢?
    stackpop
    stackpop
    Jun 10, 2015
    23
    是不是 listen queue 满了?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1636 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 59ms · UTC 16:22 · PVG 00:22 · LAX 08:22 · JFK 11:22
    ♥ Do have faith in what you're doing.