Go 语言项目性能优化实例剖析

2015-11-04 08:46:10 +08:00
 flikecn
最近 kingshard 的功能开发节奏慢了许多。一方面是工作确实比较忙,另一方面是我觉得 kingshard 的功能已经比较完善了,下一步的开发重点应该是性能优化。毕竟作为一个 MySQL proxy,如果转发 SQL 的性能很差,再多的功能都无济于事。所以这个周末一直宅在家里优化 kingshard 的转发性能。经过两天的探索发现,将 kingshard 的转发 SQL 性能提升了 18%左右,在这个过程中学到了一下知识。借此机会分享一下,同时也是督促一下自己写博客的积极性。:)

在这就不细说了,感兴趣的请移步: https://github.com/flike/kingshard/blob/master/doc/KingDoc/kingshard_performance_profiling.md
3715 次点击
所在节点    程序员
20 条回复
flikecn
2015-11-04 08:52:31 +08:00
有感兴趣的吗?
coolicer
2015-11-04 08:58:41 +08:00
@flikecn 小型的应用是不是用不到啊。
flikecn
2015-11-04 09:05:28 +08:00
@coolicer 我觉得如果需要读写分离,就可以用到。
struCoder
2015-11-04 09:25:57 +08:00
一直在关注这个项目。顶
zhujinliang
2015-11-04 09:31:00 +08:00
感谢楼主的测试与实践
之前写一个直播服务器时也注意到 SetNoDelay ,奇怪 go 为什么默认为 true ,以我的理解,这个不应该是 tcp 栈自动调度的么
0987363
2015-11-04 09:42:19 +08:00
正在做的东西跟这个比较类似, 看了下代码,没有说响应时间呢

我测试的单线 accept , read 到数据,原封不动写回去,客户端超时 2s ,休眠 1s 循环请求,最高不超过 2w 个连接
加上 reuseport ,最高 3w-4w 之间
协议栈缓冲区什么的都加大了的
MeOO
2015-11-04 09:43:27 +08:00
好东西,正在学 GO
gamexg
2015-11-04 09:48:50 +08:00
@zhujinliang false 会造成小包最大延迟一个 ttl 发送,也就是小包协议增加延迟。 true 是优化吞吐量,但是下载之类的真的需要吞吐量的时候一般每次 write 的数据都不会少,立即发送也足够填满 tcp 包。
nevernet
2015-11-04 09:55:01 +08:00
flikecn
2015-11-04 11:26:11 +08:00
@zhujinliang 感觉对于需要大量发送数据包的服务来说,应该关闭这种选项。
flikecn
2015-11-04 11:26:40 +08:00
@nevernet 之前也参与了 Atlas 开发,不过现在开发了一个新的 proxy 。功能更强大。:)
flikecn
2015-11-04 11:27:52 +08:00
@0987363 响应设计可以测了,没放上去。 QPS 越高,响应时间肯定越短。
flikecn
2015-11-04 11:28:36 +08:00
@gamexg 是的。不同的应用,肯定不一样。
oop99
2015-11-04 12:08:23 +08:00
mark, 在学 go
flikecn
2015-11-04 18:41:42 +08:00
@oop99 :)
lenran
2015-11-04 20:19:23 +08:00
kingsoft?我在猜楼主的身份
flikecn
2015-11-05 08:49:18 +08:00
@lenran 嗯,我目前在 WPS 工作。
lenran
2015-11-05 21:51:19 +08:00
@flikecn 果然!楼主涉猎很广啊
flikecn
2015-11-06 09:00:41 +08:00
@lenran 菜鸟一枚。
lenran
2015-11-07 15:20:52 +08:00
@flikecn 您过谦了!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/233434

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX