问题描述:

  • 按照项目计划,今天上线部署日志系统(收集线上的所有日志,便于问题排查)。
  • 运维按照以前的部署过程,部署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的锅的更多相关文章

  1. 30分钟全方位了解阿里云Elasticsearch

    摘要:阿里云Elasticsearch提供100%兼容开源Elasticsearch的功能,以及Security.Machine Learning.Graph.APM等商业功能,致力于数据分析.数据搜 ...

  2. php上线教程----阿里云下设值二级域名并将项目上线

    在工作中,我们需要在一个主机地址下分配多个域名来上线多个项目,但是怎么设置一个二级域名并且完成上线项目的,接下来我们就以阿里云为例演示整个上线流程 首先登陆你的阿里云,找到你的域名 点击解析,进入解析 ...

  3. 10 月 30 日 北京 LiveVideoStack 阿里云视频云专场限量赠票 100 张

    10 月 30 日 | 北京 LiveVideoStack 将携手阿里云共邀 4 位技术大咖,一同探讨从上云到创新,视频云的新技术与新场景.阿里云视频云依托阿里云服务数百万开发者的卓越服务能力与实践, ...

  4. 2018.10.20 2018-2019 ICPC,NEERC,Southern Subregional Contest(Online Mirror, ACM-ICPC Rules)

    i207M的“怕不是一个小时就要弃疗的flag”并没有生效,这次居然写到了最后,好评=.= 然而可能是退役前和i207M的最后一场比赛了TAT 不过打得真的好爽啊QAQ 最终结果: 看见那几个罚时没, ...

  5. 【2018.10.20】CXM笔记(思维)

    1. 给你个环状字符串,问从哪个地方拆开能使它的字典序最小. 先预处理任意子串的哈希值. 然后枚举拆点,将它与当前最优的拆点比较谁更优(就是从哪拆的字典序更小),具体方法是二分+哈希找出两串最长的相同 ...

  6. 怎么把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. ...

  7. 2018.10.26 浪在ACM 集训队第四次测试赛

    2018.10.26 浪在ACM 集训队第四次测试赛 题目一览表 来源 考察知识点 完成时间 A 生活大爆炸版 石头剪刀布  NOIP 提高组 2014   模拟???  2018.11.9 B 联合 ...

  8. python中使用Opencv进行车牌号检测——2018.10.24

    初学Python.Opencv,想用它做个实例解决车牌号检测. 车牌号检测需要分为四个部分:1.车辆图像获取.2.车牌定位.3.车牌字符分割和4.车牌字符识别 在百度查到了车牌识别部分车牌定位和车牌字 ...

  9. OSC Source Code Innovation Salon(2018.10.20)

    时间:2018.10.20地点:北京 朝阳 浦项中心B座2层

随机推荐

  1. Python ---- KMP(博文推荐+代码)

    既解决完后宫问题(八皇后问题)后,又利用半天的时间完成了著名的“看毛片”算法——KMP.对于初学者来说这绝对是个大坑,非常难以理解. 在此,向提出KMP算法的三位大佬表示诚挚的敬意.!!!牛X!!! ...

  2. python爬虫16 | 你,快去试试用多进程的方式重新去爬取豆瓣上的电影

    我们在之前的文章谈到了高效爬虫 在 python 中 多线程下的 GIL 锁会让多线程显得有点鸡肋 特别是在 CPU 密集型的代码下 多线程被 GIL 锁搞得效率不高 特别是对于多核的 CPU 来说 ...

  3. 关于框架搭建-web

    最近一直在学习前端相关的东西,在学了一堆基础可以以及动手在某个前端框架上写了一些东西之后,我想尝试着开始自己搭建一个框架.不知道时间需要多久,但会持续更新.小菜鸟的成长记录. ------------ ...

  4. IDEA git commit push revert

    Revert uncommitted changes You can always undo the changes you've done locally before you have commi ...

  5. mybatis源码阅读-执行器StatementHandle和ParameterHandler(五)

    StatementHandle 类图 各个实现类的作用 SimpleStatementHandler 用于使用Statement操作数据库(不会使用参数化查询?) PreparedStatementH ...

  6. 创建RpcEnv

    感觉这篇文章不错 2.1.2.创建RpcEnv -  RpcEndpoint -  RpcEndpointRef val systemName = if (isDriver) driverSystem ...

  7. PL/SQL Challenge 每日一题:2014-3-14 11gR2中带RELIES_ON子句的RESULT_CACHE函数

    PL/SQL Challenge 每日一题:2014-3-14 11gR2中带RELIES_ON子句的RESULT_CACHE函数 最先答对且答案未经编辑的puber将获得纪念章一枚(答案不可编辑但可 ...

  8. hdu 4550

    c: #include<stdio.h> #include<string.h> #define N  300 int f[N]; char s[N]; int main() { ...

  9. [cf 599D] Spongebob and Squares

    据题意: $K=\sum\limits_{i=0}^{n-1}(n-i)*(m-i)$ $K=n^2m-(n+m)\sum{i}+\sum{i^2}$ 展开化简 $m=(6k-n+n^3)/(3n^2 ...

  10. java中String类型转换为float类型

    import java.io.*; public class Demo1{ public static void main(String args[]) { String df="12.2& ...