Skip to content

关于skynet网络收发问题 #646

@linxiaolong

Description

@linxiaolong

在网络收发量较大的时候(MMO大量场景广播消息),skynet socket线程那里表面看起来反应缓慢,accept和正常网络收发的反应都有较大延迟,下面描述下:

服务器负荷:
us 用户态占比 sy 系统态占比 id 空闲态占比 hi 硬中断 si 软中断 wa 等待IO
16核16G,每核心大致都是 (5-25us) + (5-30sy),且每核基本都能保持50id,偶尔会有一两个核有5-15si,没发现hi和wa
服务器出入口带宽使用:
出:30Mb/s 入:20Mb/s
内存使用:
较为平稳,关闭了swap

在出现卡点的时候,在socket线程epoll抛ACCEPT事件那里打log,发现在服务器本地nc上去,大概等了5秒才有反应并成功出log,如果是nc其他进程的端口则正常,证明有某些原因导致skynet epoll对事件的侦测出现了延缓,暂不确定是内核提交事件的延缓(系统抑或进程的部分缓冲区的限制?),还是skynet网络收发线程过于繁忙。但如上所述,如果是skynet线程问题,不应该出现16个核心有稳定的空闲态,这里比较费解。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions