写点什么

利用 Open Distro for Elasticsearch 中的 Performance Analyzer 和 PerfTop 进行轻量级调试

  • 2019-10-03
  • 本文字数:2744 字

    阅读完需:约 9 分钟

利用 Open Distro for Elasticsearch 中的 Performance Analyzer 和 PerfTop 进行轻量级调试

当您想监控 Elasticsearch 集群或调试问题时,可以获得多个选择。您可以使用 various _cat 和 stats API 从该集群中获取信息。您可以监控 JVM 自身并对其进行性能分析。这些选项可能冗长并缺少视觉显示。当您可通过 push _cat 和 stats 将数据恢复到 Elasticsearch 中并通过 Kibana 显示时,您也可能会希望使用更加轻量级的方法。


Open Distro for Elasticsearch 提供的两个组件可结合起来为您提供所需的轻量级工具以快速检索并显示核心指标。Performance Analyzer 是一种代理和 REST API,可供您查询集群的多种性能指标,包括这些指标的聚合,而与 Java 虚拟机 (JVM) 无关。Performance Analyzer 在您用于运行 Elasticsearch 的相同节点上运行,并从这些节点收集指标。PerfTop 是仿照 Linux 的 top 命令构建的轻量级命令行工具。您可使用简单 JSON 定义控制面板;PerfTop 将这些控制面板显示在您收藏的终端应用中。

设置

Performance Analyzer 是 Open Distro for Elasticsearch 的二进制分发的组成部分。您在运行 Open Distro 时运行它。我编写了一些使 Docker for Mac OS 保持正常运行的简单指令。您可以采用这些指令,也可以将 Open Distro for Elasticsearch 文档中更加详细的指令用于 .rpm 或 Docker 安装。


您可以在我们的下载页面上找到适合您的 Linux 或 Mac 操作系统的 PerfTop 二进制文件。

运行


Open Distro for Elasticsearch 组件 Performance Analyzer 和 PerfTop 的数据流程图 PerfTop 是一种 Javascript 应用程序,它轮询 Performance Analyzer 的 API 以抽取指标并将其显示在 Graphs 中 — 这种微件显示涉及其一个或多个 dimensions 的 metrics。您可指定通过提供 dashboard 配置显示哪些指标和图表 PerfTop。您的配置定义了一个包含行和列的网格。您将图表放在此网格上,通过行数和列数调节其大小。

指标

Performance Analyzer 提供超过 75 个指标的数据,涵盖从网络到磁盘再到垃圾收集器之类的内部模块。部分更令人感兴趣的指标类别如下:


  • Paging_* 和 Sched_*:涵盖低层操作系统指标,将可帮助您了解操作系统如何运行作业及其如何缓存 Lucene 的基础数据结构

  • IO_*:监控 I/O 操作的需要和性能。这对于验证磁盘能够提供工作负荷所需的读写速率尤其重要。

  • Cache_*:Elasticsearch 在内部缓存各种数据。您可以使用这些指标查找其缓存的效率。

  • Refresh_、Flush_ 和 Merge_*:使用这些指标监控写入操作的效率。如果您在刷新、更新和合并时用的时间太长,则升高 refresh_interval。

  • *_Memory:探究 JVM 内存的利用率。利用这些指标,您可以发现映射或分片策略的系统问题。

  • Disk_、Net_:揭示您的磁盘和网络的基础利用率。

  • Threadpool_*:检查在集群内如何分配工作。通过查找哪些数据正在排队寻找资源效率不足之处。

维度

根据指标,Performance Analyzer 揭示该指示的一个或多个维度。例如,Threadpool_* 指标全都有单维度 ThreadPoolType。当您将线程池指标之一添加到图表时,它将显示该图表中的每个维度值(单个线程池队列),直至达到它在网格上的分配空间。


如果指标拥有多个维度,您可以将多个维度在同一个图表中。您可在配置中指定逗号分隔字符串。请参阅下文。

聚合

您可以采用普通方式聚合指标/维度的基础数据—sum、avg、min 和 max。

定义控制面板

PerfTop 包括四个控制面板。您可以通过使用它们获得使用 PerfTop 的感觉,并根据自己的用途对它们进行自定义。本文向您介绍控制面板文件的结构和内容。请继续关注更深入的探究。


您可以创建 JSON 文件,然后当您运行 PerfTop 时在命令行中指定该文件,以定义控制面板。控制面板的初始部分中包含 Performance Analyzer 的 endpoint 以及网格尺寸,后面是 graphs 的集合。您可以在 graphs 部分中指定零或多个 tables、lines 和 bars。


{  "endpoint": "localhost:9600",  "gridOptions": {    "rows": 12,    "cols": 12  },  "graphs": {    "tables": [],    "lines": [],    "bars": []  }}
复制代码


当您定义 table、line 和 bar 图表时,您可以指定该图表的指标、维度和聚合。您还可以指定控制图表显示的参数,包括图表的网格大小以及该图表类型的可选参数。


显示 Elasticsearch 指标的表单的 Open Distro for Elasticsearch PerfTop Elasticsearch


上面的表单来自 ClusterOverview.json 控制面板,它显示了三个指标:CPU_Utilization、IO_ReadThroughput 和 IO_WriteThroughput。它的 JSON 描述使用包含这些指标的逗号分隔字符串。每个指标都显示三个维度:Operation、IndexName 和 ShardID,在所案例中都通过 sum 聚合。当您显示多个维度时,您提供的聚合和维度都是逗号分隔的字符串,且必须长度相同,每次一个维度和一个聚合从左到右解析和解读:


    "tables": [      {        "queryParams" : {          "metrics": "CPU_Utilization,IO_ReadThroughput,IO_WriteThroughput",          "dimensions": "Operation,IndexName,ShardID",          "aggregates": "sum,sum,sum",          "sortBy": "CPU_Utilization"        },        "options": {          "gridPosition": {            "row": 0,            "col": 0,            "rowSpan": 4,            "colSpan": 7          },          "label": "Resource Metrics",          "keys": false,          "fg": "green",          "selectedFg": "green",          "selectedBg": " ",          "columnSpacing": 1,          "refreshInterval": 5000        }      },…
复制代码

小结

本文旨在帮助您开始试用 Open Distro for Elasticsearch 的 Performance Analyzer 和 PerfTop。我们现在只是粗略地了解了 Performance Analyzer 中可用的指标。您可以且应当探究到基础磁盘、网络、cpu 和进程利用率,以监控并纠正您的 Open Distro for Elasticsearch 集群中的资源瓶颈。您可以将 PerfTop 用作轻量级控制面板和调试工具,以快速识别和纠正集群中的问题。


有问题或疑问? 希望参与讨论? 您可以在我们的论坛上获得帮助并讨论 Open Distro for Elasticsearch。您可以在这里提出问题。


作者介绍:


Jon Handler


Jon Handler (@_searchgeek) 是总部位于加利福尼亚州帕罗奥图市的 Amazon Web Services 的首席解决方案架构师。Jon 与 CloudSearch 和 Elasticsearch 团队密切合作,为想要将搜索工作负载迁移到 AWS 云的广大客户提供帮助和指导。在加入 AWS 之前,Jon 作为一名软件开发人员,曾为某个大型电子商务搜索引擎编写代码长达四年。Jon 拥有宾夕法尼亚大学的文学学士学位,以及西北大学计算机科学和人工智能理学硕士和博士学位。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/analyze-your-open-distro-for-elasticsearch-cluster-using-performance-analyzer-and-perftop/


2019-10-03 18:10891
用户头像

发布了 1905 篇内容, 共 145.6 次阅读, 收获喜欢 81 次。

关注

评论

发布
暂无评论
发现更多内容

【Flutter 专题】07 图解【登录】页面小优化

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 11月日更

Apache APISIX 社区周报 | 2021 11.1-11.14

API7.ai 技术团队

云原生 API网关 社区周报 Apache APISIX

Github webhooks 自动部署博客文章,使用总结【含视频】

小傅哥

GitHub 小傅哥 WEBHOOKS 自动部署 通知回调

【LeetCode】反转链表Java题解

Albert

算法 LeetCode 11月日更

数据分片的原则和经验

编程宝库

系统架构 数据分片 编程宝库

干货分享:细说双 11 直播背后的压测保障技术

阿里巴巴云原生

阿里云 云原生 性能测试 PTS

来看看深度学习如何在文娱行业“落地”

博文视点Broadview

云小课 | DSC之数据水印,防止数据被盗用

华为云开发者联盟

版权保护 华为云 数据安全中心 数据水印 追踪溯源

直播带货系统都有什么功能?如何搭建?

风行无疆

实战 | 超详细的Kafka集群操作

五分钟学大数据

11月日更

npm必知必会点

废材壶

大前端 npm Node

【浪潮云说】直播间第十一期将于今晚19:30准时开播

云计算,

Android Activity Deeplink启动来源获取源码分析

vivo互联网技术

android 源码解析 Activity

架构训练营模块七作业 - 设计消息队列存储消息数据的 MySQL 表

李焕之

赞!一篇博客讲解清楚 Python queue模块,作为Python爬虫预备知识,用它解决采集队列问题

梦想橡皮擦

11月日更

模块八作业:设计消息队列存储消息数据的 MySQL 表格

apple

博文推荐|Pulsar 客户端编码最佳实践

Apache Pulsar

云原生 中间件 干货 Apache Pulsar 消息系统 客户端编码

在 Spring Boot 中使用搜索引擎 Elasticsearch

码语者

Spring Boot Elastic Search

Windows漏洞:MS08-067远程代码执行漏洞复现及深度防御

华为云开发者联盟

windows 漏洞 Windows漏洞 MS08-067 远程代码

如何在Java代码中使用SAP云平台CloudFoundry环境的环境变量

汪子熙

Java SAP CloudFoundry 11月日更

研究综述 | AI -自动化机器学习

索信达控股

机器学习 自动化机器学习 机器学习算法

基于OneData的数据仓库方法论

大数据技术指南

11月日更

Serverless 架构模式及演进

阿里巴巴云原生

阿里云 Serverless 云原生 架构模式

flutter小部件知多少?

坚果

flutter 11月日更

springboot从数据库中获取application配置

小鲍侃java

11月日更

往ABAP gateway system上和CloudFoundry 部署HTML5应用

汪子熙

log SAP CloudFoundry 11月日更

Vue进阶(幺玖零):表单验证 trigger:‘blur‘ OR trigger:‘change‘ 区别

No Silver Bullet

Vue 表单校验 11月日更

dart系列之:dart类中的泛型

程序那些事

flutter dart 程序那些事 11月日更

9个问题,带你掌握流程控制语句中的java原理

华为云开发者联盟

Java 变量 finally 流程控制 语句

三大重磅报告,莅临GOPS全球运维大会#324龙智展位即可获取!

龙智—DevSecOps解决方案

运维 gops

前端服务框架调研:Next.js、Nuxt.js、Nest.js、Fastify

智联大前端

node.js Vue 服务端 React

利用 Open Distro for Elasticsearch 中的 Performance Analyzer 和 PerfTop 进行轻量级调试_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章