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

Elasticsearch Java 的 CPU 占用奇高, CPU 几乎 100%的使用率了,怎么排查原因?

  •  
  •   kisshere · 2020-08-21 10:09:02 +08:00 · 5174 次点击
    这是一个创建于 1337 天前的主题,其中的信息可能已经有所发展或是发生改变。

    服务器一直以来请求数几乎没啥变化,但是 ES 的 java cpu 使用率突然飙升,top 命令一查,CPU 几乎 100%,怎么排查是哪方面造成的?以及如何找出恶意的批量暴力请求?

    12 条回复    2022-10-11 19:42:55 +08:00
    zhangxudong
        1
    zhangxudong  
       2020-08-21 10:15:09 +08:00
    可以看下 hot threads
    gabon
        2
    gabon  
       2020-08-21 10:22:24 +08:00 via Android
    threaddump
    Jooooooooo
        3
    Jooooooooo  
       2020-08-21 10:57:16 +08:00
    top -H -p <pid>

    找到对应进程里占用高的线程

    然后 jstack grep 这些线程, 注意进制转换, 上面看见的进程号是十进制的, jstack 里的进程号是十六进制的
    lff0305
        4
    lff0305  
       2020-08-21 11:14:01 +08:00
    jmap 看下是不是 heap 满了,100%是在不停的做 GC (按三楼的方法,会看到是 GC Thread 在占 cpu)
    Morriaty
        5
    Morriaty  
       2020-08-21 11:30:12 +08:00
    官方推荐的 debug 方式也是 _cat/hot_threads,但这玩意的输出不是资深 es 专家真的很难看懂

    建议还是观察 kibana 的 monitor 信息,以及观察 gc log 、slow log 之类的
    Navee
        6
    Navee  
       2020-08-21 13:21:41 +08:00
    先看 GC,GC 没问题看系统 IO (磁盘、网络)
    yuxianghe
        7
    yuxianghe  
       2020-08-21 15:38:01 +08:00
    这个原因有很多,我前段时间也排查过一起这种问题,可以参考我的博客
    https://my.oschina.net/110NotFound/blog/4311256
    TuGai
        8
    TuGai  
       2020-08-21 16:06:26 +08:00
    https://github.com/jvm-profiling-tools/async-profiler
    `/profiler.sh -d 10 -e cpu -f ./flamegraph.svg <PID>` 一行命令直接生成热点方法的火焰图
    jaylee4869
        9
    jaylee4869  
       2020-08-21 16:22:49 +08:00
    elastic 官网的权威指南:
    https://www.elastic.co/guide/cn/elasticsearch/guide/current/heap-sizing.html
    机器至少要分配一半内存给 Lucene 、禁用 swap 。
    artifact
        10
    artifact  
       2020-08-21 17:58:23 +08:00
    我们这边最近也遇到了这个问题,发现是上容器之后,es 没办法正确获取容器核心数, 设置了过大的线程池,创建过多线程导致
    brewin
        11
    brewin  
       2020-09-18 17:21:01 +08:00
    导出线程快照、内存快照、火焰图看看
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2403 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 16:05 · PVG 00:05 · LAX 09:05 · JFK 12:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.