参照 ShenYu 也 WebFlux 用 WebClient 转发 性能一直不行 终于找到问题了

20 天前
 heliotrope
# wrk -c600 -t4 -T10 -d180 --latency http://192.168.101.233:9195/gateway/sys/api
Running 3m test @ http://192.168.101.233:9195/gateway/sys/api
4 threads and 600 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 3.17s 3.10s 9.84s 76.92%
Req/Sec 473.03 366.87 1.79k 55.65%
Latency Distribution
50% 2.32s
75% 5.89s
90% 7.60s
99% 9.78s
35926 requests in 3.00m, 8.81MB read
Socket errors: connect 0, read 0, write 2669, timeout 712
Requests/sec: 199.51
Transfer/sec: 50.07KB

去掉日志

# wrk -c600 -t4 -T10 -d180 --latency http://192.168.101.233:9195/gateway/sys/api
Running 3m test @ http://192.168.101.233:9195/gateway/sys/api
4 threads and 600 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 89.75ms 36.12ms 442.22ms 89.28%
Req/Sec 1.71k 513.97 2.94k 70.65%
Latency Distribution
50% 78.67ms
75% 93.57ms
90% 128.32ms
99% 252.93ms
1224552 requests in 3.00m, 300.13MB read
Socket errors: connect 0, read 0, write 152, timeout 0
Requests/sec: 6799.68
Transfer/sec: 1.67MB



感情是在等着写日志呢 查了好久的问题...
1122 次点击
所在节点    程序员
6 条回复
sagaxu
20 天前
日志同步写入日志服务了?正常写日志性能影响应该很小
diagnostics
20 天前
Log 都不是 async 的吗?至少 logback 是
heliotrope
20 天前
@sagaxu
没有 就正常的 logback 写文件和 console
我实测性能影响特别大 关了提升 30 倍打底
我刚搜了一下很多写 日志拖垮系统的文章
并且 ShenYu 的基准测试说明里面
特地写了一条 日志级别 WARN
我用的是 INFO 就采坑了 排查了好久才发现
heliotrope
20 天前
@diagnostics
用的就是 logback
heliotrope
20 天前
@diagnostics
可能打印的数量少不影响吧
我的转发目标接口也是 WebFlux 写的 但是只打印了一行日志
性能就没什么问题

转发接口打印了十几行日志
性能掉了 30 倍以上
sagaxu
20 天前
@heliotrope 不要写 Console ,它是同步的,单线程阻塞的

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

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

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

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

© 2021 V2EX