es 配置问题,很慢很慢

2020-04-23 14:18:16 +08:00
 yangyuhan12138

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

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

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

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

2797 次点击
所在节点    程序员
19 条回复
yangyuhan12138
2020-04-23 14:21:56 +08:00
现在 skywalking 只有 global 面板能访问,其他的面板基本拉不出来数据,还可以看看 trace
yangyuhan12138
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
2020-04-23 14:39:05 +08:00
1. 主节点最好不要做数据节点;
2. 内存最好 16G 到 32G 吧;
3. ES 部署的那台机器上,查下 ulimit 等设置;再查下 ES 日志看有无警告。
yangyuhan12138
2020-04-23 14:46:35 +08:00
@woscaizi 现在确实是 8g 内存 但是应该也可以吧 我先去换个垃圾回收器试试 换成 g1 试试
flyingpot
2020-04-23 15:01:51 +08:00
堆内存给了多少啊
sss495088732
2020-04-23 15:10:08 +08:00
先查堆内存 conf
yangyuhan12138
2020-04-23 15:20:56 +08:00
yangyuhan12138
2020-04-23 15:21:17 +08:00
@sss495088732 最大最小都是 1g
AntonChen
2020-04-23 15:32:10 +08:00
堆给机器的一半,不要更换 gc 方式,官方不推荐。频繁 fullgc 有可能会导致节点脱离集群。另外 es 消耗内存最多,建议单机 32G-64G 超过 64G 跑多实例。master 和 node 同时启用时影响不大,主要消耗在 node 节点,在高可用集群中一般是分开的,因为 node 可能导致整个节点缓慢从而导致 master 缓慢,最终导致整个集群性能下降。
AntonChen
2020-04-23 15:34:14 +08:00
补充:从你的描述看加大堆内存很可能就解决了
yangyuhan12138
2020-04-23 16:54:13 +08:00
@AntonChen 对 我现在改成了 4g 已经飞起来了 哈哈哈哈哈 我到时候叫系统部的人加内存
yangyuhan12138
2020-04-23 16:59:13 +08:00
@AntonChen 现在我的三台都既是 master 又是 data ,但是应该只有其中一台既是 master 又是 data 是吧 ,因为 master 只能有一个,然后其他两个应该是纯的 data 节点 只是 master 掉了的话可以去竞选
yangyuhan12138
2020-04-23 16:59:47 +08:00
@AntonChen 谢谢大佬的回复
rrfeng
2020-04-23 17:31:44 +08:00
1g 内存能干个卵事……加内存。

不是自己写的 mapping 没啥需要优化的,都给你做好了
AntonChen
2020-04-23 21:04:04 +08:00
@yangyuhan12138 #12 是的,但是要满足副本可用的情况,一般建议分片等于(单分片较大的情况则成倍)节点数量,副本为 2 。否则集群无高可用。
yangyuhan12138
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
2020-04-24 11:51:42 +08:00
@rrfeng 坑就是在这里啊...es 默认的就是 1g
AntonChen
2020-04-24 12:30:14 +08:00
@yangyuhan12138 #16 不用调整其它的,官方优化过的
yangyuhan12138
2020-04-24 12:42:04 +08:00
@AntonChen 但是年轻代一共才 300m 会导致 大对象分配空间不足直接进入 老年代呀 老年代如果也满了就要 fullgc 了,感觉不太科学...刚看到有个建议分配的比例应该是 1:2 也就是年轻代占 1/3 老年代占 2/3 但是不知道靠不靠谱

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/665321

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX