我的程序作为proxy转发来自于后端前端的数据,现在遇到一个问题,我用pprof工具分析得到
![屏幕快照 2016-09-07 下午3.24.54.png](http://studygolang.qiniudn.com/160907/05362ee90ead225328071ef4efba816e.png)
![屏幕快照 2016-09-07 下午3.36.36.png](http://studygolang.qiniudn.com/160907/d0ea8db3315e243f34ebccf0f3cc0f69.png)
syscall 占用了30%左右的CPU开销,
根据GV图主要集中在写的上面
想问问能从什么地方对它进行优化?
底层网络库用的是GO net库
假设你的TCP连接要发送三个字节,你每次发送一个字节,系统调用至少就是3次;如果一起发送,系统调用就只有一次。如果并发TCP连接数量多了,系统调用的次数自然也会增加。
系统总有个负载上限,再多就处理不了了。
所以你需要分析程序,既然知道瓶颈是系统调用,那就要看看是否可以减少系统调用的次数。方法我在1楼也说了。
#5
更多评论