GO服务端Syscall CPU开销过高

woaichimian · · 6862 次点击
stevewang
耶和华是我的牧者,我必不至缺乏。
假设你的TCP连接要发送三个字节,你每次发送一个字节,系统调用至少就是3次;如果一起发送,系统调用就只有一次。如果并发TCP连接数量多了,系统调用的次数自然也会增加。 系统总有个负载上限,再多就处理不了了。 所以你需要分析程序,既然知道瓶颈是系统调用,那就要看看是否可以减少系统调用的次数。方法我在1楼也说了。
#5
更多评论
stevewang
耶和华是我的牧者,我必不至缺乏。
syscall.Write调用比较频繁,可以考虑用缓存或者批量写的方式进行优化。
#1
stevewang
耶和华是我的牧者,我必不至缺乏。
连接数目、数据量的影响很大。 有的时候负载确实就有这么多。
#2