by 许通

高并发实践

实际上当时也有异步模式,如:select/poll模型,这些技术都有一定的缺点:如selelct最大不能超过1024、poll没有限制,但每次收到数据需要遍历每一个连接查看哪个连接有数据请求。
http://www.52im.net/thread-566-1-1.html

数据包长度分布率

数据包时间密度分布律

单链接对应内存占用

ssd硬盘和sas盘带来的差异

内存文件系统比较

linux配置

http://www.ideawu.net/blog/archives/740.html

全局最大打开文件数

进程限制

内存的占用情况

  • 10 万个连接

    • 程只占用了不到 1MB 的内存

    • 操作系统用了 200M(大致)内存来维护这 10 万个连接

  • 控制 TCP 连接的发送和接收缓冲的大小

socket读写

http://www.52im.net/thread-1732-1-1.html

TCP配置调优

http://www.52im.net/thread-1007-1-1.html

异常处理

初始拥堵窗口

缓存区

TIME_WAIT快速回收

TIME_WAIT重用

滑动窗口

ava中是调用socket的 setSoLinger目前我们是设置为0的

移动弱网络优化

http://www.52im.net/thread-1588-1-1.html
https://cloud.tencent.com/developer/article/1005365

控制传输包的大小在1400字节以下

放大TCP拥塞窗口

调大SOCKET读写缓冲区

调大RTO(Retransmission TimeOut)初始值

禁用TCP快速回收?

打开SOCKET的TCP_NODELAY选项

接入调度

去DNS的IP直连

  • HTTPDNS

网络可达性探测

链路复用

区分网络类型的超时管理

代码逻辑

粘包拆包

http://www.ideawu.net/blog/archives/1027.html