dong706

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

  •  
  •   dong706 · Apr 28, 2023 · 3299 views
    This topic created in 1286 days ago, the information mentioned may be changed or developed.
    用 jmeter ( 200 并发)压测 k8s 里的 demo 服务(使用 nodeport 直连)时,不管增加多少个压测线程数( 100 到 1000 都试了),demo 服务最高只能占用 7 核 cpu ,TPS=7000 。

    背景信息:服务器资源为 16 核,demo 服务的 pod 并没有设置资源限制。

    ps:如果该 demo 服务在 k8s 的宿主机上直接用 java -jar 的方式运行,用 jmeter 压测( 200 并发),能压出最高 TPS=18000 ,最高能占用 11 核 cpu 。

    理论上 k8s 里部署的 demo 服务性能差一点(比如降幅 10%以内)我是可以理解的,但是像现在这样不管怎么加并发数都不影响 TPS 和占用 CPU ,会是什么原因呢? (没有其他任务在跑)

    求万能坛友解惑,不胜感激~~~
    11 replies  •  2023-06-07 17:58:18 +08:00
    RRyo
    RRyo
    Apr 28, 2023
    1
    试试这个
    github.com/wg/wrk
    lostsquirrelX
    lostsquirrelX
    Apr 28, 2023
    2
    namespace 上有没有做资源限制
    dong706
    dong706
    OP
    Apr 28, 2023
    3
    @lostsquirrelX 任何限制都没做
    Tinet
    Tinet
    Apr 28, 2023
    4
    有 2 个可能:
    1. nodeport 这里有网络损耗,可以通过将 pod 设置为 host 模式排除
    2. pod 里面有写文件系统的读写操作,导致有 IO 瓶颈,可以通过使用 hostpath 来排除这个问题
    salmon5
    salmon5
    Apr 28, 2023
    5
    ”demo 服务的 pod 并没有设置资源限制“,没限制就是有限制,它有默认值。
    dong706
    dong706
    OP
    Apr 28, 2023
    6
    @Tinet 已经排除了文件操作问题。第一个我试试,谢谢
    dong706
    dong706
    OP
    Apr 28, 2023
    7
    @salmon5 这个我测试了,没限制就真的没限制了,一个 pod 能几乎用满所有 cpu (测试 sm2 加密时)
    yinmin
    yinmin
    Apr 29, 2023
    8
    看看 demo 服务里的配置文件里有没有 workers 、thread 参数可以调整的。
    zizon
    zizon
    Apr 29, 2023
    9
    jinfo/jstack 看下线程数是不是一样?
    可能 jvm 检测到自动配置的 GC 等线程数不同.
    FabricPath
    FabricPath
    May 1, 2023
    10
    htop 看 CPU 是集中的还是分散的
    oldsix2
    oldsix2
    Jun 7, 2023
    11
    kubelet 好像有些资源限制,pid 数量和 一些别的,不知道对你的 demo 有影响吗
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1440 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 19:46 · PVG 03:46 · LAX 11:46 · JFK 14:46
    ♥ Do have faith in what you're doing.