报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

利用 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:10854
用户头像

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

关注

评论

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

WorkPlus即时通讯,打通上下游产业链,构建企业生态圈

BeeWorks

Rola详解国外住宅IP代理选择的8个方法,稳定的海外IP哪个靠谱?

Geek_bf375d

爬虫 代理IP 免费代理ip 跨境电商 IP 路由

罗拉ROLA告诉你Facebook广告账号被封怎么办?

Geek_bf375d

爬虫 代理IP 代理IP设置 免费代理ip 跨境电商

罗拉ROLA告诉你选择海外住宅代理IP服务供应商要注意哪些问题?

Geek_bf375d

爬虫 跨境电子商务 代理IP 代理IP设置 免费代理ip

海外代理IP测试|如何检测代理IP质量?罗拉ROLA详解方法与工具全干货!

Geek_bf375d

爬虫 代理IP 代理IP设置 免费代理ip 跨境电商

罗拉Rola知道IP地址如何变更的吗?

Geek_bf375d

爬虫 跨境电子商务 代理IP 代理IP设置 免费代理ip

HashML——让更多企业读懂数据,用好AI

酷克数据HashData

item_search_coupon-优惠券查询API接口提供了哪些功能?

技术冰糖葫芦

API 文档

软件开发王者搭配:80%低代码+20%高代码

互联网工科生

软件开发 低代码 JNPF 高代码

企业网站建设怎么做?

九凌网络

直播预告丨大模型+Agents疏通京东金融运营堵点

京东科技开发者

人工智能 AI 大模型

WorkPlus实现完全私有化部署,企业数据安全有保障

BeeWorks

FACEBOOK有哪些错误养号行为?罗拉ROLA-IP为您详解

Geek_bf375d

代理IP 免费代理ip 跨境电商 爬虫软件 IP 路由

人工智能应用:文本分类的技术突破与实战指导

不在线第一只蜗牛

人工智能 文本 技术 优化体系

WorkPlus解放企业应用开发,实现跨平台无缝切换

BeeWorks

程序员进阶高管指南,看懂工资最少加5k

伤感汤姆布利柏

程序员 面试 前端 升职加薪

最新demo版 | 如何0-1开发支付宝小程序之小程序页面功能介绍(三)

盐焗代码虾

支付宝小程序 支付宝 小程序开发

OpenAI 曾收到 AI 重大突破警告;半独立的 OpenAI 比与微软合并更好丨 RTE 开发者日报 Vol.91

声网

为什么Facebook运营需使用IP代理?罗拉ROLA详解有哪些美国IP代理好用?

Geek_bf375d

爬虫 代理IP 代理IP设置 免费代理ip 跨境电商

如何让你的网络推广实现最大性价比

九凌网络

工作流引擎的架构设计与对比

小狗围观科幻

罗拉ROLA告诉你美国IP代理如何获取?适用于哪些场景?

Geek_bf375d

爬虫 代理IP 代理IP设置 免费代理ip 跨境电商

跨境电商有没好的代理ip系统推荐?罗拉ROLA告诉你

Geek_bf375d

代理IP 代理IP设置 免费代理ip 跨境电商 爬虫分享

App 测试工具大全,收藏这篇就够了

优测云服务平台

外贸推广方式有哪些

九凌网络

HDD城市站九城联动,超1500位HarmonyOS开发者积极参与

最新动态

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