由于加入 skywalking 监控平台 搭建了 es 集群 配置为三台机器 三台都既是主节点也是数据节点 (这个对速度有影响吗)
discovery.zen.minimum_master_nodes: 2 数据的存放文件位置是挂载的 nas
我现在无法判断到底是哪个环节的问题,是 skywalking 还是 nas 还是 es
skywalking 用的版本是 7.0.0 es 版本为 6.8.7
1
yangyuhan12138 OP 现在 skywalking 只有 global 面板能访问,其他的面板基本拉不出来数据,还可以看看 trace
|
2
yangyuhan12138 OP 刚看了 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 |
3
woscaizi 2020-04-23 14:39:05 +08:00
1. 主节点最好不要做数据节点;
2. 内存最好 16G 到 32G 吧; 3. ES 部署的那台机器上,查下 ulimit 等设置;再查下 ES 日志看有无警告。 |
4
yangyuhan12138 OP @woscaizi 现在确实是 8g 内存 但是应该也可以吧 我先去换个垃圾回收器试试 换成 g1 试试
|
5
flyingpot 2020-04-23 15:01:51 +08:00 via Android
堆内存给了多少啊
|
6
sss495088732 2020-04-23 15:10:08 +08:00
先查堆内存 conf
|
7
yangyuhan12138 OP @flyingpot 1g
|
8
yangyuhan12138 OP @sss495088732 最大最小都是 1g
|
9
AntonChen 2020-04-23 15:32:10 +08:00 via Android 1
堆给机器的一半,不要更换 gc 方式,官方不推荐。频繁 fullgc 有可能会导致节点脱离集群。另外 es 消耗内存最多,建议单机 32G-64G 超过 64G 跑多实例。master 和 node 同时启用时影响不大,主要消耗在 node 节点,在高可用集群中一般是分开的,因为 node 可能导致整个节点缓慢从而导致 master 缓慢,最终导致整个集群性能下降。
|
10
AntonChen 2020-04-23 15:34:14 +08:00 via Android
补充:从你的描述看加大堆内存很可能就解决了
|
11
yangyuhan12138 OP @AntonChen 对 我现在改成了 4g 已经飞起来了 哈哈哈哈哈 我到时候叫系统部的人加内存
|
12
yangyuhan12138 OP @AntonChen 现在我的三台都既是 master 又是 data ,但是应该只有其中一台既是 master 又是 data 是吧 ,因为 master 只能有一个,然后其他两个应该是纯的 data 节点 只是 master 掉了的话可以去竞选
|
13
yangyuhan12138 OP @AntonChen 谢谢大佬的回复
|
14
rrfeng 2020-04-23 17:31:44 +08:00
1g 内存能干个卵事……加内存。
不是自己写的 mapping 没啥需要优化的,都给你做好了 |
15
AntonChen 2020-04-23 21:04:04 +08:00 via Android 1
@yangyuhan12138 #12 是的,但是要满足副本可用的情况,一般建议分片等于(单分片较大的情况则成倍)节点数量,副本为 2 。否则集群无高可用。
|
16
yangyuhan12138 OP @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 现在问题是 我提升堆内存的的时候 年轻代的大小并没有变 ,我需要手动设置一下吗,如果需要 设置多少比较合适呢 |
17
yangyuhan12138 OP @rrfeng 坑就是在这里啊...es 默认的就是 1g
|
18
AntonChen 2020-04-24 12:30:14 +08:00 via Android 1
@yangyuhan12138 #16 不用调整其它的,官方优化过的
|
19
yangyuhan12138 OP @AntonChen 但是年轻代一共才 300m 会导致 大对象分配空间不足直接进入 老年代呀 老年代如果也满了就要 fullgc 了,感觉不太科学...刚看到有个建议分配的比例应该是 1:2 也就是年轻代占 1/3 老年代占 2/3 但是不知道靠不靠谱
|