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层
随机推荐
- MATLAB学习笔记之界面基本操作
一.命令窗口 1.对于较长的命令,可以用...连接符将断开的命令连接 s=/+/+/4 ... +/+/ 注意: 连接符...与表达式之间要留一个空格: 对于单引号内的字符串必须在一行完全引起来. a ...
- [数据结构】【c语言】链表的创建和遍历
第一次写代码的博客,一个刚刚接触的新手,来这里主要是为了记录自己,方便自己以后浏览,也欢迎大家指正.先来个简单的,动态链表的创建和遍历. #include<stdio.h> #includ ...
- POJ3984——迷宫问题
迷宫问题 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 31616 Accepted: 18100 Descriptio ...
- Nginx反向代理WebSocket(WSS)
1. WebSocket协议 WebSocket 协议提供了一种创建支持客户端和服务端实时双向通信Web应用程序的方法.作为HTML5规范的一部分,WebSockets简化了开发Web实时通信程序的难 ...
- MySQL之SQL优化详解(一)
目录 慢查询日志 1. 慢查询日志开启 2. 慢查询日志设置与查看 3.日志分析工具mysqldumpslow 序言: 在我面试很多人的过程中,很多人谈到SQL优化都头头是道,建索引,explai ...
- 调用ms自带的合成语音TTS
通过import of Component导入封装TTS引擎,然后选择: 最后调用: MyVoce := CoSpVoice.Create; MyVoce.Pause;//暂停 MyVoce.Stat ...
- time库
简介 返回系统当前时间戳(正常的生活时间) 返回格林威治时间戳对应的struct_time对象 本地时间的struct_time对象 当前时间戳对应的易读格式字符串时间(周几,月份,号数,时,分,秒, ...
- Maven学习总结(1)——Maven入门
Maven学习总结(一)--Maven入门 一.Maven的基本概念 Maven(翻译为"专家","内行")是跨平台的项目管理工具.主要服务于基于Java平台的 ...
- 洛谷 P1972 BZOJ 1878 [SDOI2009]HH的项链
题目描述 HH 有一串由各种漂亮的贝壳组成的项链.HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH 不断地收集新的贝壳,因此,他的项链变得越来越长. ...
- java 多线程面试题
1.什么是线程? 线程是操作系统能够运行的最小调度单位,他被包含在进程中,是进程中实际运作的单位. 2.线程和进程的区别 线程是进程的子集,一个进程有很多线程,每个线程执行不同的任务,不同的进程使用不 ...