CPU 瓶颈
浏览器与服务端通常采取 json 格式通讯
json 编码非常耗费 CPU 资源
向 100 万在线推送 1 次,则需 100 万次 json encode
锁瓶颈
需要维护在线用户集合(100 万在线),通常是一个字典结构
推送消息即遍历整个集合,顺序发送消息,耗时极长
推送期间,客户端仍旧正常上/下线,所以集合需要上锁
內核瓶颈
推送量大:100万在线 * 10条/秒 = 1000万条/秒
内核瓶颈:linux 内核发送 TCP 的极限包频 ~ 100 万/秒
3 个性能瓶颈
內核瓶颈
锁瓶颈
CPU 瓶颈
GO千万级消息推送服务性能瓶颈
内核瓶颈
推送量大:100万在线*10条/秒=1000万条/秒
内核瓶颈:linux内核发送TCP的极限包频≈100万/秒
锁瓶颈
需要维护在线用户集合(100万在线),通常是一个字典结构
CPU瓶颈
json encode100万次/秒 ?cpu耗尽
CPU瓶颈
内核瓶颈难点
锁瓶颈难点
你是煞笔么?王八蛋?还是妖艳贱货?
性能瓶颈.
GO千万级消息推送服务性能瓶颈
内核瓶颈
推送量大:100万在线*10条/秒=1000万条/秒
内核瓶颈:linux内核发送TCP的极限包频≈100万/秒
锁瓶颈
需要维护在线用户集合(100万在线),通常是一个字典结构
推送消息即遍历整个集合,顺序发送消息,耗时极长
推送期间,客户端仍旧正常上/下线,所以集合需要上锁
CPU瓶颈
浏览器与客户端通常采用json格式通讯
json编码非常耗费CPU资源
向100万在线推送1次,则需100万次json encode
技术难点——CPU瓶颈
技术难点——锁瓶颈
内核 瓶颈
内核瓶颈:linux内核发送TCP旳极限包频 100万/秒