2018.10.9 上线发现elasticsearch写入速度超级慢,原来罪魁祸首是阿里云服务的OSS的锅
问题描述:
- 按照项目计划,今天上线部署日志系统(收集线上的所有日志,便于问题排查)。
- 运维按照以前的部署过程,部署elasticsearch,部署结束之后,通过x-pack的monitor发现elasticsearch的索引速度只有几百/秒的索引速度,远远小于同样的配置,没有做优化的另一个es集群。问题就产生了,什么原因呢
问题定位:
- 下午比较忙,没有时间排查问题,就让另个同事,排查,下午下班的时候去问什么原因,同事告诉我说是,logstash问题,我信了,因为他对比了以前的logstash 配置,消费kafka主题的配置从以前的topics_pattern=>["server1.history","server2.history"]变更为了topics_pattern => [".*history"];对于这个回答我信了,我问他对比测试过了?,回答说给了肯定的回答。那好,找到问题,可以去吃饭了。
- 结果到了晚上,8点从公司外面回来,同事过来和我说,还是有问题。
- 正好我有空,我就自己来排查,虽然过程麻烦了点
- 首先我排查:同事说的kafka的数据产生的慢的问题;我自己用消费命令消费一个产数据很多的topic的最新数据,kafka-console-consumer.sh --bootstrap-server:localhost:9092 --topic server.history ;肉眼看明显数据产生并不慢。那么问题并不是kafka的问题。我也没见过kafka会出现大问题
- 然后,我排查logstash的消费快慢问题;我把logstash的output配置成stdout.肉眼看明显消费也不慢。那么问题也不是logstash的消费慢的问题
- 剩下的排查点就是logstash的output的问题了。改成elasticsearch之后,发现进入elasticsearch的数据几百/秒,可见问题很大在elasticsearch这边
- 我果断的把一个logstash的output的目标给为另一个正常的,速度较快elasticsearch集群。马上发现,这个集群elasticsearch的索引速度一下就是几千每秒(还没做优化,后期优化之后是几万每秒)。说明问题在新的elasticsearch集群
- 简单对比了一下集群配置,没有什么大的区别,发了个问题在群里“新的elasticsearch集群和以前的有什么区别”。我以为会得到答案:“没有区别”,
- 结果答案是“这次的使用的磁盘是阿里云的oss磁盘”。我反正不懂这是什么磁盘。然后我登到elasticsearch服务器上看
[root@online-log-elasticsearch-002 ~]# top top - 21:53:28 up 1 day, 10:30, 1 user, load average: 2.16, 1.98, 1.65 Tasks: 94 total, 2 running, 92 sleeping, 0 stopped, 0 zombie %Cpu(s): 15.4/12.0 27[||||||||||||||||||||||||||| ] KiB Mem : 8010196 total, 507524 free, 7048124 used, 454548 buff/cache KiB Swap: 0 total, 0 free, 0 used. 702952 avail Mem add filter #1 (ignoring case) as: [!]FLD?VAL PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 21285 elastic 20 0 1850420 36896 1812 S 102.2 0.5 736:00.98 ossfs online-all-log /data/ -ourl=http://oss-cn-hangzhou-internal.aliyuncs.com 16719 elastic 20 0 9.857g 6.518g 11656 S 11.0 85.3 3:24.11 /usr/jdk1.8.0_162/bin/java -Xms6g -Xmx6g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75+
- 从top中可以看到,21285 elastic 20 0 1850420 36896 1812 S 102.2 0.5 736:00.98 ossfs online-all-log /data/ -ourl=http://oss-cn-hangzhou-internal.aliyuncs.com ossfs 服务占了100%上下的cpu 。问题定位到了。发了个邮件出来。
- 第二天,运维重新换磁盘。换了磁盘之后。问题解决。
问题解决过程反思:
- 排查问题,要一步一步来,确定问题点,才能解决问题。猜测是没有办法解决问题的。而且猜测了要去论证
2018.10.9 上线发现elasticsearch写入速度超级慢,原来罪魁祸首是阿里云服务的OSS的锅的更多相关文章
- 30分钟全方位了解阿里云Elasticsearch
摘要:阿里云Elasticsearch提供100%兼容开源Elasticsearch的功能,以及Security.Machine Learning.Graph.APM等商业功能,致力于数据分析.数据搜 ...
- php上线教程----阿里云下设值二级域名并将项目上线
在工作中,我们需要在一个主机地址下分配多个域名来上线多个项目,但是怎么设置一个二级域名并且完成上线项目的,接下来我们就以阿里云为例演示整个上线流程 首先登陆你的阿里云,找到你的域名 点击解析,进入解析 ...
- 10 月 30 日 北京 LiveVideoStack 阿里云视频云专场限量赠票 100 张
10 月 30 日 | 北京 LiveVideoStack 将携手阿里云共邀 4 位技术大咖,一同探讨从上云到创新,视频云的新技术与新场景.阿里云视频云依托阿里云服务数百万开发者的卓越服务能力与实践, ...
- 2018.10.20 2018-2019 ICPC,NEERC,Southern Subregional Contest(Online Mirror, ACM-ICPC Rules)
i207M的“怕不是一个小时就要弃疗的flag”并没有生效,这次居然写到了最后,好评=.= 然而可能是退役前和i207M的最后一场比赛了TAT 不过打得真的好爽啊QAQ 最终结果: 看见那几个罚时没, ...
- 【2018.10.20】CXM笔记(思维)
1. 给你个环状字符串,问从哪个地方拆开能使它的字典序最小. 先预处理任意子串的哈希值. 然后枚举拆点,将它与当前最优的拆点比较谁更优(就是从哪拆的字典序更小),具体方法是二分+哈希找出两串最长的相同 ...
- 怎么把Thu Nov 22 2018 10:49:36 GMT+0800转换成正常日期
this.data //Thu Nov 22 2018 10:49:36 GMT+0800 this.date_of_birth = date.getFullYear() + '-' + (date. ...
- 2018.10.26 浪在ACM 集训队第四次测试赛
2018.10.26 浪在ACM 集训队第四次测试赛 题目一览表 来源 考察知识点 完成时间 A 生活大爆炸版 石头剪刀布 NOIP 提高组 2014 模拟??? 2018.11.9 B 联合 ...
- python中使用Opencv进行车牌号检测——2018.10.24
初学Python.Opencv,想用它做个实例解决车牌号检测. 车牌号检测需要分为四个部分:1.车辆图像获取.2.车牌定位.3.车牌字符分割和4.车牌字符识别 在百度查到了车牌识别部分车牌定位和车牌字 ...
- OSC Source Code Innovation Salon(2018.10.20)
时间:2018.10.20地点:北京 朝阳 浦项中心B座2层
随机推荐
- 从 UI 交互角度说语音识别产品
语言是人类进化的主要特征,而人工智能拥有了说话的能力也是科技进步的一个特征.在很多科幻的电影里面,我们可以看到人工智能的身影.在电影 her 里面见到的人工智能,真的让人叹为观止,他可以随意的和你聊天 ...
- Perl Connect to Database without password as sysdba
#!/oracle/product/11g/db/perl/bin/perl use lib '/oracle/product/11g/db/perl/lib/site_perl/5.10.0'; u ...
- ES6学习历程(变量的解构赋值)
一.数组的解构赋值 1.举几个例子足以理解 let [a, b, c] = [1, 2, 3]; a:1; b:2; c:3; let [x, , y] = [1, 2, 3]; x:1 y ...
- 【codeforces 515A】Drazil and Date
[题目链接]:http://codeforces.com/contest/515/problem/A [题意] 每次只能走到相邻的四个格子中的一个; 告诉你最后走到了(a,b)走了多少步->s ...
- cocoa 运行apple脚本文件的方法
NSString* path = [[NSBundle mainBundle] pathForResource:@"ScriptName" ofType:@"scpt&q ...
- 越来越好玩,SPRINGMVC
了解了JSP和SERVLET的运行机制, 看完SPRING的内容,理解了一些IOC及AOP之后,进入SPRINGMVC和SPRINGBOOT,感觉轻松多啦.
- debug jdk source can't watch variable what it is
https://www.cnblogs.com/shuaiqing/p/7525841.html https://stackoverflow.com/questions/18255474/debug- ...
- java web解决表单重复提交
首先我们在讨论如何解决表单重复提交问题之前先来解决三个问题:1.什么叫表单重复提交?2.什么情况下会出现表单重复提交?3.什么情况需要避免表单重复提交? 什么叫表单提交问题,说白了,就是同一份信息,重 ...
- 【Anroid界面实现】WindowManager类使用具体解释——用户首次打开APP的使用教学蒙板效果实现
转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 在上一篇的文章中,我们介绍了怎样实现桌面悬浮窗体,在这个效果的实现过程中.最重要的一个类就是WindowMa ...
- 使用oracle数据库和MySQL数据库时hibernate的映射文件.hbm.xml的不同
假设是使用oracle数据库.那么hibernate的映射文件.hbm.xml例如以下: <id name="xuehao" column="xuehao" ...