From 88d29609ff1a177d3471fecca0f92c27033c4e87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=B5?= Date: Fri, 8 Nov 2019 09:47:27 +0800 Subject: [PATCH] Add zh blog for elasticsearch storage optimization (#66) --- ...king-elasticsearch-storage-optimization.md | 71 +++++++++++++++++++ docs/zh/blog/README.md | 4 ++ 2 files changed, 75 insertions(+) create mode 100644 docs/zh/blog/2019-11-07-skywalking-elasticsearch-storage-optimization.md diff --git a/docs/zh/blog/2019-11-07-skywalking-elasticsearch-storage-optimization.md b/docs/zh/blog/2019-11-07-skywalking-elasticsearch-storage-optimization.md new file mode 100644 index 0000000..4946300 --- /dev/null +++ b/docs/zh/blog/2019-11-07-skywalking-elasticsearch-storage-optimization.md @@ -0,0 +1,71 @@ +# skywalking使用elasticsearch存储的优化 +PS:本文仅仅是在我的测试环境实验过,如果有问题,请自行优化调整 + +前记:记得skywlking还是6.0版本的时候我就在试用,当时是skywalking基本在两三天左右就会监控数据完全查不出来,elasticsearch日志报错,由于当时也算是初用es,主要用来日志收集,并且时间有限,没有继续深入研究,最近空闲,更新到最新的6.5.0(开发版本)还是会出现同样的问题,下定决心解决下,于是有了本文的浅知拙见 + +### 本次调优环境 +skywalking: 6.5.0 +elasticsearch:6.3.2(下文用es代替) + +### 调优过程 +1. 当然是百度了,百度后其实翻来翻去就找到一个相关的文章https://my.oschina.net/keking/blog/3025303 ,参考之。 +2. 调整skywalking的这两个参数试试 + `bulkActions: 4000 # Execute the bulk every 2000 requests` + ` bulkSize: 60 # flush the bulk every 20mb` + 然后es还是继续挂,继续频繁的重启 + +3. 继续看这个文章,发现了另外一篇https://www.easyice.cn/archives/207 ,继续参考之 +4. 这篇文章发现每一个字我都认识,看起来也能懂,但是对于es小白的我来说,着实不知道怎么调整这些参数,姑且先加到es的配置文件里边试试看吧,于是就加了,然后重启es的时候说发现index参数配置,自从5.0之后就不支持这样配置了,还给调了个es的接口去设置,但是设置失败(真够不错的),朝着这个思路去百度,百度到快放弃,后来就寻思,再试试看吧,(百度的结果是知道了index有静态参数和动态参数,动态的参数是可以随时设置,静态的只能创建或者关闭状态的索引才可以设置) +然鹅并不知道怎么关闭索引,继续百度,(怎么全特么百度,好吧不百度了,直接来干货) + * 关闭索引(我的skywalking索引命名空间是dry_trace) + ` curl -XPOST "http://localhost:9200/dry_trace*/_close"` + * 设置参数 + curl -XPUT 'http://localhost:9200/dry_trace*/_settings?preserve_existing=true' -H 'Content-type:application/json' -d '{ + "index.refresh_interval" : "10s", + "index.translog.durability" : "async", + "index.translog.flush_threshold_size" : "1024mb", + "index.translog.sync_interval" : "120s" + }' + *打开索引 + `curl -XPOST "http://localhost:9200/dry_trace*/_open"` +5. 还有一点,第四步的方式只适用于现有的索引设置,那么新的索引设置呢,总不能每天重复下第四步吧。当然不需要,来干货 +首先登陆kinaba控制台找到开发工具 +贴入以下代码 + PUT /_template/dry_trace_tmp +{ + "index_patterns": "dry_trace*", + "order": 1, + "settings": { + "index": { + "refresh_interval": "30s", + "translog": { + "flush_threshold_size": "1GB", + "sync_interval": "60s", + "durability": "async" + } + } + } +} + + + + + +6. 截止目前为止运行一周,还未发现挂掉,一切看起来正常 +**** + + +### 完结--- +于 2019年11月 + + + + + + + + + + + + diff --git a/docs/zh/blog/README.md b/docs/zh/blog/README.md index ac1ad65..387c2cf 100644 --- a/docs/zh/blog/README.md +++ b/docs/zh/blog/README.md @@ -2,6 +2,10 @@ layout: LayoutBlog blog: +- title: skywalking使用elasticsearch存储的优化 + name: 2019-11-07-skywalking-elasticsearch-storage-optimization + time: langyan1022,11月7日,2019 + short: skywalking使用elasticsearch存储的优化 - title: 使用 chart 部署 skywalking name: 2019-10-08-how-to-use-sw-chart -- GitLab