写点什么

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

发布了 1852 篇内容, 共 119.5 次阅读, 收获喜欢 78 次。

关注

评论

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

SICP 习题解答 1.11

十元

Redis 数据结构介绍

一个大红包

七日更 3月日更

Wireshark数据包分析学习笔记Day6

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

两会引爆数字经济 银行与科技公司找到合作新赛道

CECBC

数字经济

每日打卡1:删除字符串中的所有相邻重复项

有梦想的tester

七日更 3月日更

初学者思维 - 找到解决问题的新方法

石云升

程序员 思维模型 28天写作 3月日更 初学者思维

区块链:热追背后需冷静 技术应用要同步

CECBC

区块链

第五.需求评审与产品发布 (承上启下的作用)

让我思考一会儿

并行编程首篇

shun123456789

开发语言 基础知识

“数”看2021年“3•15征集令”

百分点大数据团队

新思科技网络安全研究中心发现Jetty Web服务器存在漏洞

InfoQ_434670063458

新思科技 Jetty Web

黑客之XSS注入练手:XSS Challenges通关指南

BigYoung

黑客 信息安全 XSS

Vue源码学习 | 4个实用的javascript技巧

devpoint

Vue vuejs stringify

调整好心态

Nydia

职场的信任危机

ES_her0

28天写作 3月日更

c++编程思路

张鹤羽

28天写作 3月日更

神了!华为18级专家把困扰我多年的操作系统与网络,讲明白了

程序员 架构 计算机

2021最新腾讯面经分享:Java面试核心点/技术笔记/学习视频(春招必备)

比伯

Java 编程 程序员 架构 面试

紫霞仙子:区块链的十二连问

悟空聊架构

Java 比特币 区块链 架构 分布式

鬼才|闲鱼PMO的年终总结

闲鱼技术

翻译:《实用的Python编程》04_03_Special_methods

codists

Python

常见 git 需求整理(持续更新中)

blueju

git 大前端 工具 npm

第二章-利益相关方分析

阿珍爱上阿强

利益相关者

多线产品作战,奔疲于不确定的路上

boshi

创业 产品策略 七日更

高盛:机构需求量巨大,比特币年内或有望涨至10万美元

CECBC

比特币

Oracle 是如何处理异常的?

xiezhr

oracle 异常处理 3月日更 PLSQL

话说 AQS

木子的昼夜

Java AQS

为什么 HashMap 的加载因子是0.75?我研究源码发现一个重大秘密。。。

程序员 架构 面试

如果延迟退休势在必行,区块链如何助力“养老助老”?

CECBC

养老

网点数字化也要适老化 浦发银行为老年人跨越“数字鸿沟”制定服务范本

CECBC

数字鸿沟

BGP的那些事

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