是 Nginx 已经落后时代了,还是那些人在吹水?

2021-11-30 10:36:28 +08:00
 abcbuzhiming
刚刚看到一篇公众号,石墨文档说他们改造自己 websocket 网关,看了一眼是用 go 实现的,里面的有个数据很吓人,4 核心 8GB ,单机 48w 连接。

然后我在 v2 搜了一下,好家伙,有人宣称自己写出了单机 100w 连接数的网络库。一看也是 go 。

我记得 nginx 的单机负载也就是 3w-5w 连接,网上极少见有人能搞到 10w 连接的。上面这些 50w 和 100w 单机连接数的真的不是在吹牛?
12355 次点击
所在节点    问与答
78 条回复
Lyv5
2021-11-30 15:38:49 +08:00
@supuwoerc 一气呵成 哈哈哈哈哈
vanton
2021-11-30 16:07:10 +08:00
nginx 百万级没问题。
go 要想超过 nginx ,可能性不大,基本可以认为是胡扯。
lzs5240
2021-11-30 16:10:49 +08:00
OpenResty Tengine 不都是 nginx
leavic
2021-11-30 16:15:01 +08:00
哪天 C 语言培训或者教程书籍之类的火了,nginx 就性能碾压全世界了
kilala2020
2021-11-30 16:15:24 +08:00
吹 go 并发都已经这么卷了么?汇编>C>=C++>java>Go ,大概是这样?
Xusually
2021-11-30 16:22:33 +08:00
推 go 就算了,踩 nginx 是几个意思?
hmli
2021-11-30 17:40:26 +08:00
不是,你们**有些人**真就一点原文不看,看了个标题就开始闭着眼写命题作文呗?
我翻遍全文也没找到哪里有提到说 4c8g 单机 48w 连接, 下面作者的实测里倒是有一个 16c32g 单机 1~1.8W 连接的数据。
我也没看到作者哪里有提到说"nginx"不行,得换 golang 才厉害的论点,只看到在他的”网关 2.0“里因为业务需求把 nginx 网关换成了自研。
还是说你们都是评论 bot 吗? 看到“公众号” "Golang" "并发”, 就触发你们的关键词了?
sujin190
2021-11-30 17:59:54 +08:00
看到“nginx 的单机负载也就是 3w-5w 连接”才是被惊了,你不是用的假 nginx 吧
newmlp
2021-11-30 18:43:25 +08:00
通用和定制的问题,你要上 dpdk 单机百万也不是不可以
miniliuke
2021-11-30 19:05:34 +08:00
nginx 不是号称 1000w 连接,100w 的 qps 吗......
adoal
2021-11-30 19:43:54 +08:00
benchmarking 这种事,笑笑就好
oncethink
2021-11-30 20:08:17 +08:00
兄弟们,以后还是要注意来源请求,看了原文再评论
wanguorui123
2021-11-30 20:13:17 +08:00
数据库磁盘 IO 才是瓶颈
lesismal
2021-11-30 20:50:41 +08:00
连接数不等于 qps ,如果百万连接数建立起来放那不用,也没什么压力呀,所以你看石墨的文章里,好像只是 5s 广播一次不算太大的消息吧,48w/5s ,不到 10w qps ,这个确实没什么压力,对于很多语言都没压力

基于以上,楼主缺少正常的压力数据指标来对比性能是没什么意义的

另外,
“然后我在 v2 搜了一下,好家伙,有人宣称自己写出了单机 100w 连接数的网络库。一看也是 go 。”
这好像是在说我?但是宣称这个词感觉怪怪的
我这也备上了 websocket 百万连接的测试例子,有兴趣的同学完全可以自己跑下试试、而不是觉得这只是宣称,因为这应该是事实:
https://github.com/lesismal/nbio-examples/tree/master/websocket_1m

老帖子在这:
https://www.v2ex.com/t/763906
https://www.v2ex.com/t/794435


鸟窝老师还有篇帖子对比 RPC 框架的,我的另一个仓库也在里面
https://colobu.com/2021/08/01/benchmark-of-rpc-frameworks/

百万连接也好、RPC 也好,有兴趣的同学,建议自己跑代码亲测对比,而不是只看别人仓库文档里的数据,因为一些朋友交流下来,自测结果跟一些公司出品项目自带文档里的排名数据对不上,这其中可能有环境差异的因素,也可能有一些其他因素,但请以自测为准。
Deeymmm
2021-11-30 21:54:16 +08:00
@FakNoCNName 0xffff 是端口上限吧,不是连接数上限
Donahue
2021-11-30 21:59:46 +08:00
@ysc3839 webdav 要求不高直接起个 docker 挂载一下就好了哈哈
pengtdyd
2021-11-30 22:01:08 +08:00
go 啥时候能干过 c 了,这帮人吹牛皮不打草稿。我大 Rust 都没这么狂过。
akira
2021-11-30 22:13:50 +08:00
生产环境链接数没上过千的表示 毫无压力,你们继续。。
BBCCBB
2021-11-30 22:38:20 +08:00
nginx 单机没有这么弱吧?

很早 linkedin 基于 netty 就能做到单机 50w+ socket 连接了.
eason1874
2021-11-30 22:40:01 +08:00
Nginx 是通用 Web Server ,有一系列 Filter 要跑,在用不上这些 Filter 的专用场景比不上专用软件再正常不过了

脱离业务需求去比较,没多大意义。再厉害的狙击枪在近战时也比不上一把菜刀

看了 #30 发的链接,那篇文章里没有说 Nginx 性能怎么样,只说了他们的 Nginx 只用到一个小功能,不值得用。“Nginx 仅使用 TLS 解密,请求透传,产生了大量的资源浪费”

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

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

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

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

© 2021 V2EX