Go 语言项目性能优化实例剖析 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
flikecn
V2EX    程序员

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

  •  
  •   flikecn
    flike 2015-11-04 08:46:10 +08:00 4379 次点击
    这是一个创建于 3708 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    在这就不细说了,感兴趣的请移步: https://github.com/flike/kingshard/blob/master/doc/KingDoc/kingshard_performance_profiling.md

    20 条回复    2015-11-07 15:20:52 +08:00
    flikecn
        1
    flikecn  
    OP
       2015-11-04 08:52:31 +08:00
    有感兴趣的吗?
    coolicer
        2
    coolicer  
       2015-11-04 08:58:41 +08:00
    @flikecn 小型的应用是不是用不到啊。
    flikecn
        3
    flikecn  
    OP
       2015-11-04 09:05:28 +08:00
    @coolicer 我觉得如果需要读写分离,就可以用到。
    struCoder
        4
    struCoder  
       2015-11-04 09:25:57 +08:00
    一直在关注这个项目。顶
    zhujinliang
        5
    zhujinliang  
       2015-11-04 09:31:00 +08:00
    感谢楼主的测试与实践
    之前写一个直播服务器时也注意到 SetNoDelay ,奇怪 go 为什么默认为 true ,以我的理解,这个不应该是 tcp 栈自动调度的么
    0987363
        6
    0987363  
       2015-11-04 09:42:19 +08:00
    正在做的东西跟这个比较类似, 看了下代码,没有说响应时间呢

    我测试的单线 accept , read 到数据,原封不动写回去,客户端超时 2s ,休眠 1s 循环请求,最高不超过 2w 个连接
    加上 reuseport ,最高 3w-4w 之间
    协议栈缓冲区什么的都加大了的
    MeOO
        7
    MeOO  
       2015-11-04 09:43:27 +08:00
    好东西,正在学 GO
    gamexg
        8
    gamexg  
       2015-11-04 09:48:50 +08:00
    @zhujinliang false 会造成小包最大延迟一个 ttl 发送,也就是小包协议增加延迟。 true 是优化吞吐量,但是下载之类的真的需要吞吐量的时候一般每次 write 的数据都不会少,立即发送也足够填满 tcp 包。
    nevernet
        9
    nevernet  
       2015-11-04 09:55:01 +08:00
    flikecn
        10
    flikecn  
    OP
       2015-11-04 11:26:11 +08:00
    @zhujinliang 感觉对于需要大量发送数据包的服务来说,应该关闭这种选项。
    flikecn
        11
    flikecn  
    OP
       2015-11-04 11:26:40 +08:00
    @nevernet 之前也参与了 Atlas 开发,不过现在开发了一个新的 proxy 。功能更强大。:)
    flikecn
        12
    flikecn  
    OP
       2015-11-04 11:27:52 +08:00
    @0987363 响应设计可以测了,没放上去。 QPS 越高,响应时间肯定越短。
    flikecn
        13
    flikecn  
    OP
       2015-11-04 11:28:36 +08:00
    @gamexg 是的。不同的应用,肯定不一样。
    oop99
        14
    oop99  
       2015-11-04 12:08:23 +08:00
    mark, 在学 go
    flikecn
        15
    flikecn  
    OP
       2015-11-04 18:41:42 +08:00
    @oop99 :)
    lenran
        16
    lenran  
       2015-11-04 20:19:23 +08:00
    kingsoft?我在猜楼主的身份
    flikecn
        17
    flikecn  
    OP
       2015-11-05 08:49:18 +08:00
    @lenran 嗯,我目前在 WPS 工作。
    lenran
        18
    lenran  
       2015-11-05 21:51:19 +08:00
    @flikecn 果然!楼主涉猎很广啊
    flikecn
        19
    flikecn  
    OP
       2015-11-06 09:00:41 +08:00
    @lenran 菜鸟一枚。
    lenran
        20
    lenran  
       2015-11-07 15:20:52 +08:00
    @flikecn 您过谦了!
    关于     帮助文档     自助推广系统         API     FAQ     Solana     5354 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 03:41 PVG 11:41 LAX 19:41 JFK 22:41
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86