问题一

最近发现kibana的日志传的很慢,常常查不到日志,由于所有的日志收集都只传输到了一个logstash进行收集和过滤,于是怀疑是否是由于logstash的吞吐量存在瓶颈。一看,还真是到了瓶颈。

优化过程

经过查询logstash完整配置文件,有几个参数需要调整

1

2

3

4

5

6

7

8# pipeline线程数,官方建议是等于CPU内核数

pipeline.workers: 24

# 实际output时的线程数

pipeline.output.workers: 24

# 每次发送的事件数

pipeline.batch.size: 3000

# 发送延时

pipeline.batch.delay: 5

PS:由于我们的ES集群数据量较大(>28T),所以具体配置数值视自身生产环境

优化结果

ES的吞吐由每秒9817/s提升到41183/s,具体可以通过x-pack的monitor查看。

问题二

在查看logstash日志过程中,我们看到了大量的以下报错

1

2[2017-03-18T09:46:21,043][INFO][logstash.outputs.elasticsearch] retrying failed action with response code: 429 ({"type"=>"es_rejected_execution_exception", "reason"=>"rejected execution of org.elasticsearch.transport.TransportService$6@6918cf2e on EsThreadPoolExecutor[bulk, queue capacity = 50, org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor@55337655[Running, pool size = 24, active threads = 24, queued tasks = 50, completed tasks = 1767887463]]"})

[2017-03-18T09:46:21,043][ERROR][logstash.outputs.elasticsearch] Retrying individual actions

查询官网,确认为时ES的写入遇到了瓶颈

1Make sure to watch for TOO_MANY_REQUESTS (429) response codes (EsRejectedExecutionException with the Java client), which is the way that Elasticsearch tells you that it cannot keep up with the current indexing rate. When it happens, you should pause indexing a bit before trying again, ideally with randomized exponential backoff.

我们首先想到的是来调整ES的线程数,但是官网写到”Don’t Touch There Settings!”, 那怎么办?于是乎官方建议我们修改logstash的参数pipeline.batch.size

在ES5.0以后,es将bulk、flush、get、index、search等线程池完全分离,自身的写入不会影响其他功能的性能。

来查询一下ES当前的线程情况:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47GET _nodes/stats/thread_pool?pretty

{

"_nodes": {

"total": 6,

"successful": 6,

"failed": 0

},

"cluster_name": "dev-elasticstack5.0",

"nodes": {

"nnfCv8FrSh-p223gsbJVMA": {

"timestamp": 1489804973926,

"name": "node-3",

"transport_address": "192.168.3.***:9301",

"host": "192.168.3.***",

"ip": "192.168.3.***:9301",

"roles": [

"master",

"data",

"ingest"

],

"attributes": {

"rack": "r1"

},

"thread_pool": {

"bulk": {

"threads": 24,

"queue": 214,

"active": 24,

"rejected": 30804543,

"largest": 24,

"completed": 1047606679

},

......

"watcher": {

"threads": 0,

"queue": 0,

"active": 0,

"rejected": 0,

"largest": 0,

"completed": 0

}

}

}

}

}

其中:”bulk”模板的线程数24,当前活跃的线程数24,证明所有的线程是busy的状态,queue队列214,rejected为30804543。那么问题就找到了,所有的线程都在忙,队列堵满后再有进程写入就会被拒绝,而当前拒绝数为30804543。

优化方案

问题找到了,如何优化呢。官方的建议是提高每次批处理的数量,调节传输间歇时间。当batch.size增大,es处理的事件数就会变少,写入也就越快了。

1

2

3

4

5

6vim /etc/logstash/logstash.yml

#

pipeline.workers: 24

pipeline.output.workers: 24

pipeline.batch.size: 10000

pipeline.batch.delay: 10

具体的worker/output.workers数量建议等于CPU数,batch.size/batch.delay根据实际的数据量逐渐增大来测试最优值。

logstash 吞吐量优化_logstash吞吐率优化相关推荐

  1. TD-LTE上行吞吐率优化指导书V2.0

    产品名称 密级 LTE 内部公开 产品版本 共12页 TD-LTE上行吞吐率优化指导书 拟制: 广西LTE专项项目组 日期: 更新: 日期: 审核: 日期: 批准: 日期: 华为技术有限公司 版权所有 ...

  2. SA上传吞吐率优化经验总结

    综述 集团SA大会战要求的上行吞吐率挑战值160Mbps,青岛移动27个网格在正式测试的时候没有一个网格可以达到该目标.因此聚焦如何解决每个网格上行吞吐率160Mbps和所有网格数据均值达到160Mb ...

  3. 千兆以太网卡吞吐量和丢包率优化总结

    现在有很多硬件平台理论上支持千兆以太网接口,但实际传输速率远远低于千兆,并且丢包率很高.最近我做了一些以太网吞吐量和丢包率方面的优化工作,有一些心得和大家分享一下. 一.测试模型 二.影响吞吐量和丢包 ...

  4. WEB站点之 吞吐率、吞吐量、TPS、性能测试

    一.吞吐率 我们一般使用单位时间内服务器处理的请求数来描述其并发处理能力.称之为吞吐率(Throughput),单位是 "req/s".吞吐率特指Web服务器单位时间内处理的请求数 ...

  5. 吞吐率、吞吐量、TPS、性能测试,纸上不谈兵

    https://ruby-china.org/topics/26221 一.吞吐率 我们一般使用单位时间内服务器处理的请求数来描述其并发处理能力.称之为吞吐率(Throughput),单位是 &quo ...

  6. 熊猫直播P2P分享率优化(下):ASN组网

    本文来自熊猫直播基础研发部的投稿,是熊猫直播P2P分享率优化系列文章的第二篇,第一篇请访问这里.本文授权LiveVideoStack发布,重点展示了熊猫直播通过ASN组网提升P2P分享率的实践. 文 ...

  7. 一步步优化JVM六:优化吞吐量[转]

    2019独角兽企业重金招聘Python工程师标准>>> 原文:http://ganlv.iteye.com/blog/1571315 参考:http://www.myexceptio ...

  8. ADS(Advanced Design system)良率分析(Yield)、良率优化(YieldOptim)

    前言 先进设计系统 Advanced Design system(ADS)Agilent Technologies 是领先的电子设计自动化软件,适用于射频.微波和信号完整性应用. 原理分析 我们使用软 ...

  9. ADS学习:统计分析——灵敏度分析、良率优化

    灵敏度分析 1.禁用良率分析控件及指标设置模块 2.添加灵敏度分析控件 3.设置元器件优化参数,这里只关注器件灵敏度,故数值随便设置 4.添加优化目标设置模块,设置如图 5.再添加优化目标设置模块,设 ...

  10. 性能测试中常见的专业术语:QPS、TPS、并发数、响应时间(RT)、吞吐率和吞吐量【杭州多测师】【杭州多测师_王sir】...

    一.QPS: 每秒钟处理完请求的次数,注意这里是处理完,单接口看做是一个事务的话,1TPS=1QPS 二.TPS:每秒钟处理完的事务次数,一般TPS是对整个系统来讲的.一个应用系统1s能完成多少事务处 ...

最新文章

  1. 1.5s~0.02s,期间我们可以做些什么?
  2. 微软发布通用型AI框架Avatar Framework
  3. 盘点2018人工智能行业六大造假事件:科大讯飞罗生门仅仅是小儿科
  4. 网站性能优化思维导图
  5. 我的 Promtheus 到底啥时候报警?
  6. JavaScript eval()
  7. python 爬取直播弹幕视频_python爬取斗鱼B总直播弹幕
  8. 深度解读NLP文本情感分析Pipeline
  9. 使用 Go 实现生产者和消费者,Kafka 正式升级到 3.0!
  10. 听说IT人的目标都是成为架构师,那么请收下这份架构养成计划
  11. 克服Dropout缺陷,简单又有效的正则方法:R-Drop
  12. 学习yield《转》
  13. OpenStack 云计算基础知识
  14. 破解成功!iMac成功运行WindowsXP系统
  15. linux静态网络带宽分配策略,Xen网络带宽分配优化方案的设计与实现
  16. 手机触摸屏有电阻屏和电容屏,有什么区别?
  17. 更改google桌面搜索的索引文件位置
  18. Python爬取手机号码前7位号段归属地及运营商
  19. gitgub代码汇总
  20. python 爬取财经新闻_Python爬虫并自制新闻网站,太好玩了

热门文章

  1. 【图像隐写】基于matlab GUI DCT数字水印嵌入+提取【含Matlab源码 1671期】
  2. 【TSP】基于matlab改进的蚁群算法求解旅行商问题【含Matlab源码 242期】
  3. 【图像增强】基于matlab区域相似变换函数和蜻蜓算法灰度图像增强【含Matlab源码 089期】
  4. 【优化预测】基于matlab蝙蝠算法优化SVM预测【含Matlab源码 141期】
  5. python删库命令_python3 删除数据库
  6. micropython stm32f429_[MicroPython]STM32F407开发板控制BMP180测量气压
  7. 大一计算机理论总结,大一计算机理论基础总结论文.doc
  8. ci github 通知_GitHub 欢迎一切 CI 工具
  9. Apache认证(目录)
  10. WebSocket 协议 RFC 文档(全中文翻译) 1