V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dong706
V2EX  ›  Kubernetes

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

  •  
  •   dong706 · 335 天前 · 1444 次点击
    这是一个创建于 335 天前的主题,其中的信息可能已经有所发展或是发生改变。
    用 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 条回复    2023-06-07 17:58:18 +08:00
    RRyo
        1
    RRyo  
       335 天前
    试试这个
    github.com/wg/wrk
    lostsquirrelX
        2
    lostsquirrelX  
       335 天前
    namespace 上有没有做资源限制
    dong706
        3
    dong706  
    OP
       335 天前
    @lostsquirrelX 任何限制都没做
    Tinet
        4
    Tinet  
       335 天前
    有 2 个可能:
    1. nodeport 这里有网络损耗,可以通过将 pod 设置为 host 模式排除
    2. pod 里面有写文件系统的读写操作,导致有 IO 瓶颈,可以通过使用 hostpath 来排除这个问题
    salmon5
        5
    salmon5  
       335 天前
    ”demo 服务的 pod 并没有设置资源限制“,没限制就是有限制,它有默认值。
    dong706
        6
    dong706  
    OP
       334 天前
    @Tinet 已经排除了文件操作问题。第一个我试试,谢谢
    dong706
        7
    dong706  
    OP
       334 天前
    @salmon5 这个我测试了,没限制就真的没限制了,一个 pod 能几乎用满所有 cpu (测试 sm2 加密时)
    yinmin
        8
    yinmin  
       334 天前
    看看 demo 服务里的配置文件里有没有 workers 、thread 参数可以调整的。
    zizon
        9
    zizon  
       333 天前
    jinfo/jstack 看下线程数是不是一样?
    可能 jvm 检测到自动配置的 GC 等线程数不同.
    FabricPath
        10
    FabricPath  
       331 天前
    htop 看 CPU 是集中的还是分散的
    oldsix2
        11
    oldsix2  
       295 天前
    kubelet 好像有些资源限制,pid 数量和 一些别的,不知道对你的 demo 有影响吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3374 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 11:21 · PVG 19:21 · LAX 04:21 · JFK 07:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.