Closed
Description
tcp框架层次的限流 ->协程池->应用层次协议实现的限流. netpoll 等同于tcp框架 + 协程池 + other feature.
我们在基于netpoll来开发rpc框架的过程中, 压测的时候经常发现内存炸了. 原因在于,服务端或者客户端应用层处理不过来,然而这里有本身又缺乏一种背压机制.netpoll 一旦接收到新的数据,用空的协程或者放在tasklist里面等待执行,这相当于一种无穷大的机制.
然而, 底层的变更不能依赖应用层的变化,所以背压机制在这里显得不恰当.
更好的描述是, 层级式的需求,
- 应用, 应用特征
- 需要多高的并发,最多多高的并发,
- 对tcp框架,需要pps, 带宽是多少,最多允许每个连接上的任务占用多大内存.
按照这种思路,我认为netpoll应该添加限流功能, 以便能够控制,观察netpoll自身级别的资源使用状况.
Metadata
Metadata
Assignees
Labels
No labels