栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux C++通讯架构【七】:服务器完善

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux C++通讯架构【七】:服务器完善

心跳包:

    就是个普通的数据包,就是消息码不同而已;一般每隔几十秒(30s),客户端主动把心跳包返回给客户端,服务端收到了,返回一个心跳包。如果客户端不发,服务器会怎样?=》在约定的时间*3(90s)后,关闭socket连接所以如果客户端发了心跳包,90s后没有接收到,就应该主动关闭连接,并尝试再次连接也叫ping包,心跳包一般不需要包体
遗漏问题:
    收到太多数据处理不过来:
      epoll技术限速,在epoll红黑树节点中,把epoll【可读】通知干掉增加处理线程
    积压太多发送不过来:
      服务器干掉一些要发送的数据(客户端崩,总比服务器崩要好)服务器检查客户端是否只发包,不收包(一个int接收到了 int++,发送成功了 int--)
性能优化:
    绑定cpu
      一个进程运行在一个核上,nginx有这个函数【cpu亲和性】。(cpu核数=进程数)为啥绑定好呢?cpu缓存行,一下在这个核运行,一下又在另一个核上运行(此时缓存失效)。但如果进程数就是大于cpu核数呢? =》三级缓存,cpu所有核的共享缓存
    提升进程优先级 =》分配到更多的cpu时间片
消息的跳跃发送:
    比如张三的接收缓冲区满了,就得跳过发李四的。其实指的是跳过张三的包2发张三的包3

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/748207.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号