k8s 单 pod 的性能压测发现的奇怪现象

2023-04-24 20:01:30 +08:00
 dong706

目标服务:是使用 java -jar 启动的 http 服务

对比的双方是:a.在 k8s 里启动该 http 服务(宿主机 ip+nodeport 访问,实例数量只有 1 个) 和 b.在 k8s 宿主机上直接使用 java -jar 启动 http 服务

限制:没有任何资源限制

1 、第一轮对比测试:空接口

a.TPS=58000

b.TPS=62000

k8s 环境性能损耗不到 10%

2 、第二轮对比测试:SM2 加密

a.TPS=550

b.TPS=1200

k8s 环境性能损耗 55%

3 、第三轮对比测试:生成 RSA 密钥对

a.TPS=550

b.TPS=635

k8s 环境性能损耗 13%

1 和 3 的的结果还算符合预期,但是 2 的性能损耗高达 55%,测试好几遍都是这个结果,完全出乎意料之外,不知道怎么解释这个结果,求大佬解惑~~~

1882 次点击
所在节点    Kubernetes
9 条回复
dazhangpan
2023-04-24 20:18:05 +08:00
可能容器里没识别出 SM2 的加速指令吧
victorc
2023-04-24 23:26:39 +08:00
sm2 过程是否要写文件,容器的 fs 都有 cow 机制
seers
2023-04-24 23:36:41 +08:00
啥也没有让人怎么看。。日志,dump ,火焰图,给个 top 也行啊
dong706
2023-04-25 08:05:29 +08:00
@victorc 没有写文件,纯粹的 java 工具类软加密
crsmk01
2023-04-25 09:57:26 +08:00
这个结果有失偏颇,要限制一下 jvm 堆内存那些参数,pod 的 request 、limit cpu/mem 也限制一下,再去测试验证。
ruanimal
2023-04-25 10:28:25 +08:00
是不是代码有用到多核加速?
urnoob
2023-04-25 14:15:05 +08:00
盲猜.
SM2 耗时更多,大量的 HTTP 连接并发时,挂起的连接数也更多.
当前一个结束连接释放时,处理挂起的连接逻辑在 k8s/docker 底层效率不够.
kaddusabagei38
2023-04-25 14:27:28 +08:00
不是想为了黑而黑,不过国密这种东西真的是一言难尽...
victorc
2023-04-25 17:31:16 +08:00
@dong706 把 docker 的网络模式换成 host ,再测试一次

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

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

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

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

© 2021 V2EX