经过再次重写之后,性能已经是 Nginx 的 1.76 倍

2018-01-25 16:12:47 +08:00
 herozem

guard 是一个高性能熔断器+代理

RT。上周末发了 https://www.v2ex.com/t/424778#reply14

然后最近几天一直在迭代。从把锁丢掉,到重写 radix tree 和融合统计模块,到把 net/http 换成 fasthttp, 在我的笔记本上,QPS 从 7k 左右到了 22k,对比 Nginx,性能从 Nginx 的 0.55 到 1.76 倍。改写的过程非常 累,因为写好的测试需要一遍一遍推翻重写。数据结构也需要仔细设计。hot-path 需要非常注意避免性能问题。

但是改写的过程也学到了很多东西,例如怎么去优化 Go 的性能,期间尝试了 prefork 模式,减少锁,缩小临界区,使用 CAS,调整 GOGC参数 等等等等。

项目链接:

https://github.com/jiajunhuang/guard

核心模块的设计基本上已经稳定了,接下来要做的事情是:

欢迎大家关注和 star,以及提出意见,建议和 PR !

18498 次点击
所在节点    分享创造
45 条回复
sammo
2018-01-28 11:22:55 +08:00
终于在 v 站上看到一个有性能追求的软件了
xxdd
2018-01-28 21:37:04 +08:00
已 star
从不吝啬 star QAQ
Thiece
2018-01-29 15:53:31 +08:00
xman99
2018-01-31 14:30:13 +08:00
Mark, 膜拜中
holulu
2018-03-30 12:21:15 +08:00
@caola ATS 试试网上查到的配置,但开不了 QUIC。服务器能正常启动,日志也能看到 QUIC,但没见 UDP 端口有监听啊。
Chrome stable 和 canary 也只支持 QUIC-39,QUIC-41 好像没有太大意义。

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

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

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

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

© 2021 V2EX