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

es 配置问题,很慢很慢

  •  
  •   yangyuhan12138 · 2020-04-23 14:18:16 +08:00 · 2790 次点击
    这是一个创建于 1666 天前的主题,其中的信息可能已经有所发展或是发生改变。

    由于加入 skywalking 监控平台 搭建了 es 集群 配置为三台机器 三台都既是主节点也是数据节点 (这个对速度有影响吗)

    discovery.zen.minimum_master_nodes: 2 数据的存放文件位置是挂载的 nas

    我现在无法判断到底是哪个环节的问题,是 skywalking 还是 nas 还是 es

    skywalking 用的版本是 7.0.0 es 版本为 6.8.7

    19 条回复    2020-04-24 12:42:04 +08:00
    yangyuhan12138
        1
    yangyuhan12138  
    OP
       2020-04-23 14:21:56 +08:00
    现在 skywalking 只有 global 面板能访问,其他的面板基本拉不出来数据,还可以看看 trace
    yangyuhan12138
        2
    yangyuhan12138  
    OP
       2020-04-23 14:35:22 +08:00
    刚看了 es master 的日志 一直都在 fullgc


    2020-04-20T09:38:52.024+0800: 1812432.369: [Full GC (Allocation Failure) 2020-04-20T09:38:52.024+0800: 1812432.369: [CMS2020-04-20T09:38:52.758+0800: 1812433.103: [CMS-concurrent-mark: 1.529/1.532 secs] [Times: user=2.43 sys=0.15, real=1.53 secs]
    (concurrent mode failure): 707839K->707839K(707840K), 3.8980933 secs] 1014527K->811822K(1014528K), [Metaspace: 89906K->89906K(1134592K)], 3.8983149 secs] [Times: user=3.88 sys=0.00, real=3.90 secs]
    2020-04-20T09:38:55.922+0800: 1812436.267: Total time for which application threads were stopped: 3.8999773 seconds, Stopping threads took: 0.0001188 seconds
    woscaizi
        3
    woscaizi  
       2020-04-23 14:39:05 +08:00
    1. 主节点最好不要做数据节点;
    2. 内存最好 16G 到 32G 吧;
    3. ES 部署的那台机器上,查下 ulimit 等设置;再查下 ES 日志看有无警告。
    yangyuhan12138
        4
    yangyuhan12138  
    OP
       2020-04-23 14:46:35 +08:00
    @woscaizi 现在确实是 8g 内存 但是应该也可以吧 我先去换个垃圾回收器试试 换成 g1 试试
    flyingpot
        5
    flyingpot  
       2020-04-23 15:01:51 +08:00 via Android
    堆内存给了多少啊
    sss495088732
        6
    sss495088732  
       2020-04-23 15:10:08 +08:00
    先查堆内存 conf
    yangyuhan12138
        7
    yangyuhan12138  
    OP
       2020-04-23 15:20:56 +08:00
    yangyuhan12138
        8
    yangyuhan12138  
    OP
       2020-04-23 15:21:17 +08:00
    @sss495088732 最大最小都是 1g
    AntonChen
        9
    AntonChen  
       2020-04-23 15:32:10 +08:00 via Android   ❤️ 1
    堆给机器的一半,不要更换 gc 方式,官方不推荐。频繁 fullgc 有可能会导致节点脱离集群。另外 es 消耗内存最多,建议单机 32G-64G 超过 64G 跑多实例。master 和 node 同时启用时影响不大,主要消耗在 node 节点,在高可用集群中一般是分开的,因为 node 可能导致整个节点缓慢从而导致 master 缓慢,最终导致整个集群性能下降。
    AntonChen
        10
    AntonChen  
       2020-04-23 15:34:14 +08:00 via Android
    补充:从你的描述看加大堆内存很可能就解决了
    yangyuhan12138
        11
    yangyuhan12138  
    OP
       2020-04-23 16:54:13 +08:00
    @AntonChen 对 我现在改成了 4g 已经飞起来了 哈哈哈哈哈 我到时候叫系统部的人加内存
    yangyuhan12138
        12
    yangyuhan12138  
    OP
       2020-04-23 16:59:13 +08:00
    @AntonChen 现在我的三台都既是 master 又是 data ,但是应该只有其中一台既是 master 又是 data 是吧 ,因为 master 只能有一个,然后其他两个应该是纯的 data 节点 只是 master 掉了的话可以去竞选
    yangyuhan12138
        13
    yangyuhan12138  
    OP
       2020-04-23 16:59:47 +08:00
    @AntonChen 谢谢大佬的回复
    rrfeng
        14
    rrfeng  
       2020-04-23 17:31:44 +08:00
    1g 内存能干个卵事……加内存。

    不是自己写的 mapping 没啥需要优化的,都给你做好了
    AntonChen
        15
    AntonChen  
       2020-04-23 21:04:04 +08:00 via Android   ❤️ 1
    @yangyuhan12138 #12 是的,但是要满足副本可用的情况,一般建议分片等于(单分片较大的情况则成倍)节点数量,副本为 2 。否则集群无高可用。
    yangyuhan12138
        16
    yangyuhan12138  
    OP
       2020-04-24 11:50:04 +08:00
    @AntonChen skywalking 分片默认为 2 副本默认为 0 我觉得可以接受应为 skywalking 的数据不重要,允许丢失,
    我现在还有个问题 ,现在内存已升到 32g 我配置的 jvm heap size 为 16g
    如下:
    Heap Usage:
    New Generation (Eden + 1 Survivor Space):
    capacity = 314048512 (299.5MB)
    used = 253434816 (241.69427490234375MB)
    free = 60613696 (57.80572509765625MB)
    80.69925706255216% used
    Eden Space:
    capacity = 279183360 (266.25MB)
    used = 235960464 (225.02943420410156MB)
    free = 43222896 (41.22056579589844MB)
    84.51809735365318% used
    From Space:
    capacity = 34865152 (33.25MB)
    used = 17474352 (16.664840698242188MB)
    free = 17390800 (16.585159301757812MB)
    50.119821648848685% used
    To Space:
    capacity = 34865152 (33.25MB)
    used = 0 (0.0MB)
    free = 34865152 (33.25MB)
    0.0% used
    concurrent mark-sweep generation:
    capacity = 16830955520 (16051.25MB)
    used = 3481115352 (3319.8503036499023MB)
    free = 13349840168 (12731.399696350098MB)
    20.682814756794034% used

    现在问题是 我提升堆内存的的时候 年轻代的大小并没有变 ,我需要手动设置一下吗,如果需要 设置多少比较合适呢
    yangyuhan12138
        17
    yangyuhan12138  
    OP
       2020-04-24 11:51:42 +08:00
    @rrfeng 坑就是在这里啊...es 默认的就是 1g
    AntonChen
        18
    AntonChen  
       2020-04-24 12:30:14 +08:00 via Android   ❤️ 1
    @yangyuhan12138 #16 不用调整其它的,官方优化过的
    yangyuhan12138
        19
    yangyuhan12138  
    OP
       2020-04-24 12:42:04 +08:00
    @AntonChen 但是年轻代一共才 300m 会导致 大对象分配空间不足直接进入 老年代呀 老年代如果也满了就要 fullgc 了,感觉不太科学...刚看到有个建议分配的比例应该是 1:2 也就是年轻代占 1/3 老年代占 2/3 但是不知道靠不靠谱
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1821 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:43 · PVG 00:43 · LAX 08:43 · JFK 11:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.