库存文章发布
写了一个TcpServer,主要功能是做终端的保活信息,保活信息中包含一些额外数据。并转发来自后端的命令至终端。
历经数日,各项基础功能完备,准备做一些压力测试。
服务器配置:
cpu family : 6
model : 63
model name : Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz
stepping : 2
microcode : 0x38
cpu MHz : 1523.625
cache size : 15360 KB
内存:16G
当然,了为压力测试,独立写了客户端测试程序,客户端也简单,实现连接和心跳(10秒一次)。
第一次测试,客户端数据过千就出错了,很明显,limit需要配置一下喽。 limit这个配置,说难不难,但每次记不住。
第二次测试,客户端20k,貌似没问题,只是CPU使用率达到200%多,领导不同意,性能堪忧,并对go产生质疑,如此性能,怎么称霸宇宙!! 改去吧。
开始一次性能优化之旅:
1,首先,我们看到了性能问题,但我们不知道哪里有问题。于是需要工具帮我们调查,哪里慢了。这里pprof 工具出场性能试工具
虽然我的程序并不提供http服务,但我依然选择了http的方式,输出debug,因为我觉得这样方便
main.go
本文记录了一次Go语言实现的TCP服务器性能优化过程。在压力测试中,服务器面临性能问题,CPU使用率高达200%。通过引入pprof工具进行性能分析,发现并优化了耗时最长的代码段——`Depack`函数,减少了内存操作的时间。最终通过调整和优化,提升了服务器性能。
最低0.47元/天 解锁文章

1641

被折叠的 条评论
为什么被折叠?



