首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >弹性搜索性能调优

弹性搜索性能调优
EN

Server Fault用户
提问于 2015-02-18 09:50:17
回答 2查看 2.6K关注 0票数 4

在单个节点弹性搜索和logstash中,我们用20 In和200 In的文件解析测试了在不同类型的AWS实例(如中型、大型和Xlarge )上的弹性搜索。

Logstash conf

代码语言:javascript
复制
input {
   file {

  }

}

filter {
  mutate
  {
    gsub => ["message", "\n", " "]
  }
 mutate
 {
    gsub => ["message", "\t", " "]
 }
 multiline
   {
        pattern => "^ "
        what => "previous"
   }

grok { match => [ "message", "%{TIME:log_time}\|%{WORD:Message_type}\|%{GREEDYDATA:Component}\|%{NUMBER:line_number}\| %{GREEDYDATA:log_message}"] 
     match => [ "path" , "%{GREEDYDATA}/%{GREEDYDATA:loccode}/%{GREEDYDATA:_machine}\:%{DATE:logdate}.log"]

         break_on_match => false
}


#To check location is S or L
  if [loccode] == "S"  or [loccode] == "L" {
 ruby {   
        code => " temp = event['_machine'].split('_')
              if  !temp.nil? || !temp.empty?
          event['_machine'] = temp[0]
        end"
   } 
 }
 mutate {

    add_field => ["event_timestamp", "%{@timestamp}" ]
    replace => [ "log_time", "%{logdate} %{log_time}" ]
    # Remove the 'logdate' field since we don't need it anymore.
   lowercase=>["loccode"]
   remove => "logdate"

  }
# to get all site details (site name, city and co-ordinates)
sitelocator{sitename => "loccode"  datafile=>"vendor/sitelocator/SiteDetails.csv"}
date {  locale=>"en"
    match => [ "log_time", "yyyy-MM-dd HH:mm:ss", "MM-dd-yyyy HH:mm:ss.SSS","ISO8601" ] }

}

output {
elasticsearch{
     }

}

环境详细信息:中型实例3.75RAM 1核存储:4 GB SSD 64位网络性能:中度实例运行: Logstash,弹性搜索

设想:1

代码语言:javascript
复制
**With default settings** 
Result :
20mb logfile 23 mins Events Per/second 175
200mb logfile 3 hrs 3 mins Events Per/second 175


Added the following to settings:
Java heap size : 2GB
bootstrap.mlockall: true
indices.fielddata.cache.size: "30%"
indices.cache.filter.size: "30%"
index.translog.flush_threshold_ops: 50000
indices.memory.index_buffer_size: 50%

# Search thread pool
threadpool.search.type: fixed
threadpool.search.size: 20
threadpool.search.queue_size: 100

**With added settings** 
Result:
20mb logfile 22 mins Events Per/second 180
200mb logfile 3 hrs 07 mins Events Per/second 180

场景2

环境详细信息: R3大型15.25RAM 2核存储:32 GB SSD 64位网络性能:中度实例运行: Logstash,弹性搜索

代码语言:javascript
复制
**With default settings** 
Result :
  20mb logfile 7 mins Events Per/second 750
  200mb logfile 65 mins Events Per/second 800

Added the following to settings:
Java heap size: 7gb
other parameters same as above

**With added settings** 
Result:
20mb logfile 7 mins Events Per/second 800
200mb logfile 55 mins Events Per/second 800

设想3

环境详细信息: R3高内存超大内存r3.xLarge30.5RAM 4核存储:32 GB SSD 64位网络性能:中度实例运行: Logstash,弹性搜索

代码语言:javascript
复制
**With default settings** 
  Result:
  20mb logfile 7 mins Events Per/second 1200
  200mb logfile 34 mins Events Per/second 1200

 Added the following to settings:
    Java heap size: 15gb
    other parameters same as above

**With added settings** 
Result:
    20mb logfile 7 mins Events Per/second 1200
    200mb logfile 34 mins Events Per/second 1200

我想知道

  1. 表演的基准是什么?
  2. 性能是否符合基准,还是低于基准
  3. 为什么即使在我增加了elasticsearch之后,iam也找不到不同之处?
  4. 如何监视Logstash并提高其性能?

感谢在这方面的任何帮助,因为我是新的日志和弹性搜索。

EN

回答 2

Server Fault用户

发布于 2015-02-18 11:24:45

1-如果您想要评论您的perf,我们需要看到您的logstash配置。

Logstash性能是过滤器/输出/工作人员设置的混合体。

多过滤器=更少的事件/秒。

一个好主意是扩大规模,如果您有逻辑存储的额外问题。更多的工作人员--更多的实例--可能会增加事件/秒/秒。人们与发送者一起工作到拉比姆queu和规模逻辑存储节点后面。

2-见1

3-有IO限值,而索梅汀有较好的节数。Elasticsearch被设计用于处理碎片/节点等。

4-日志存储监测目前只是过程监测。使用java调试器可以找到一些线索,但是您必须在logstash用户组中找到信息。对于elasticsearch来说,监视elasticsearch集群是一个奇迹。

票数 0
EN

Server Fault用户

发布于 2017-07-25 18:11:54

我们监控日志的方式:

1)直接监测弹性:对ES api进行一个简单的about/info调用(如果ES下降,您将被关闭)

2)监测弹性状态。取决于你怎么用。您可以查找在env中有意义的活动(文档#、索引大小等)或其他统计数据。如果您看到stat正在移动,您就知道logstash正在成功地将消息发送到ES中。

3) Logstash本身:只需点击它正在监听的端口即可。如果港口变黑了..。洛什死了/不是在跑。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/669534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档