HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

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

关注

评论

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

揭秘抖音视频列表数据接口:获取数据的新利器

tbapi

抖音API 抖音视频数据接口 抖音视频列表接口 抖音视频列表数据采集 抖音视频API接口

为团队配置Linux环境,简单高效的项目共享方案

EquatorCoco

Linux

多云和混合云支持:跨越云平台的统一视图

可观测技术

多云平台

2024年企业级即时通讯软件有哪些推荐?这6款推荐给你

WorkPlus

华为大咖说 | 数字化解码:如何用日常语言讲明白数字世界?

华为云PaaS服务小智

云计算 华为云

Zilliz向你发来邀请:请加入Stack Overflow吧!入股不亏!

Zilliz

人工智能 Zilliz 向量数据库 大语言模型

科学思考的范式、模式与方法

Anliven

个人提升 思维

自从用了这些监控工具,我连续几天没睡好觉!

不在线第一只蜗牛

数据库 大数据

SD-WAN在智能物流领域的应用与前景

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SDWAN

Navicat Premium for Mac(多连接数据库管理工具)v16.3.4中文激活版

iMac小白

MATLAB R2023a for Mac(商业数学软件)v9.14.0 (2337262)激活版

iMac小白

无缝融入,即刻智能[1]:MaxKB知识库问答系统,零编码嵌入第三方业务系统,定制专属智能方案,用户满意度飙升

汀丶人工智能

agent 智能问答 rag

Keepalived基本原理

天翼云开发者社区

Linux keepalive

RocksDB 二级缓存

天翼云开发者社区

RocksDB

全球支持与无界服务:跨越地域的数据采集与分析

可观测技术

监控

Minitab Express for Mac(数据分析统计软件)v1.5.0激活版

iMac小白

Final Cut Pro for Mac(fcpx视频剪辑)v10.7.1 中文版

iMac小白

在Python中使用sqlalchemy来操作数据库的几个小总结

EquatorCoco

Python 数据库

ZOS对象存储跨域资源访问的实现和使用

天翼云开发者社区

对象存储 跨域

redis渐进式rehash

天翼云开发者社区

数据库 redis

百度发布2024上半年热点报告,哪些热梗成为全民口头禅?

Geek_2d6073

Apache Doris + Iceberg 快速搭建指南|Lakehouse 使用手册(三)

SelectDB

数据湖 Doris iceberg LakeHouse 湖仓一体

全栈 JavaScript 开发图景

FunTester

使用企业级即时通讯对企业有什么好处?

WorkPlus

针对一个红队病毒样本逆向分析

我再BUG界嘎嘎乱杀

黑客 网络安全 安全 网安

SD-WAN组网加速ZOOM视频会议

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SDWAN

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