在微小的请求减lessgunicorn CPU使用率

我正在用Python编写一个事件聚集服务器,使用Nginx + Gunicorn。 系统在1 cpu / 2核心盒(AWS c4.large)上的CPU最大值之前可以扩展到大约300 rps。 增加一个枪炮工或者使用小工,只能在利润率上(约10%)。 响应在1-2ms范围内(事件正被写入磁盘)。

从我的分析看来,gunicorn似乎花费了所有的时间和精力读取socket(在select()调用中是sync.py)。 与此同时,Nginx占据了CPU本身的2-3%左右。 使用UNIX套接字不会更改networking套接字上的性能configuration文件。

由于这些事件非常小(大约200字节),看起来它需要花费过多的努力才能将请求从套接字中取出。 我希望能够批量这些请求有效载荷之前,他们到达gunicorn,但我不知道如何做到这一点。 有什么办法可以减lessgunicorn正在采取的努力/ CPU的数量,并提高每箱的吞吐量?