东亚银行、岚图汽车带你解锁 AIGC 时代的数字化人才培养各赛道新模式! 了解详情
写点什么

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

发布了 1834 篇内容, 共 91.4 次阅读, 收获喜欢 73 次。

关注

评论

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

峰会回顾 | 基于StarRocks,百草味如何通过数据赋能快消品行业

StarRocks

#数据库

Baklib|打造属于您自己的企业维基

Baklib

产品 效率工具 企业 wiki 产品文档

好文分享 | 记一次Oracle12c数据库SQL短暂缓慢问题分析

墨天轮

数据库 oracle 性能优化 征文投稿

【云安全】云安全产品有哪些?哪个品牌好?

行云管家

云计算 网络安全 安全 云安全

以开发之名|斗罗大陆:创造一个尽情探险的开放式游戏世界

HMS Core

华为 HMS Core

如何在 SAP Business Application Studio 里创建 SAP UI5 应用并部署到 BTP 平台上

Jerry Wang

云原生 云平台 SAP 10月月更

火力全开-Precision 7670触顶性能天花版

科技热闻

CEF | CEF浏览器客户端功能扩展:实现与JS交互的功能

YOLO.

qt 10月月更 C++

uniapp实现国际化多语言切换

源字节1号

软件开发

区服分析丨更透彻的游戏营运数据解读,助力高效增长

HMS Core

分析

Linux 各个Namespace 的作用

忙着长大#

linux namespace

数据结构学习,稀疏矩阵(三元组和十字链)

IC00

学习 数据结构 算法 学习笔记 10月月更

在云南,我用华为云AI开发出千万级用户的应用

华为云开发者联盟

人工智能 程序员 华为云 文字识别 企业号十月 PK 榜

基于炼丹神器深度学习下的生命科学冷冻电镜单细胞基因分析的解决方案

蓝海大脑GPU

跑批为什么这么难

陈橘又青

EMQ走进富士康,探讨新生态模式下智能制造与智能汽车基础架构的未来

EMQ映云科技

车联网 物联网 IoT emqx 10月月更

横空出世,智见未来,戴尔Latitude 9430傲视群雄

科技热闻

如何利用Java在Word中创建表格

Geek_249eec

Java word 表格

训练营 | 如何成为一名开源社区贡献者?

阿里巴巴云原生

阿里云 开源 云原生 KubeVela

StartDT奇点云邀您参加2022云栖大会,11月3-5日杭州见

奇点云

云栖大会 奇点云

C# TreeView控件方法属性学习

IC00

C# 学习 程序员 上位机 10月月更

软件测试校招面试真题 | 面试官必问面试题之你有什么想问我的?

测试人

校招面试真题 | 和面试官聊的很 high,但就是拿不到 offer,怎么办?

霍格沃兹测试开发学社

云管理工具是干什么的?有哪些?哪个品牌好?

行云管家

云计算 云管理 云工具

IM跨平台技术学习(五):融云基于Electron的IM跨平台SDK改造实践总结

JackJiang

嵌入式 Linux 入门(一、Linux 基本介绍及文件结构)

矜辰所致

Linux 10月月更 文件结构

Qt|使用QDialog窗口调用exec时崩溃解决问题

中国好公民st

c++ qt 10月月更

Qt | QList的removeAt、takeAt的区别

YOLO.

qt 10月月更 C++

Baklib|企业知识管理的一些建议分享

Baklib

效率工具 知识管理 企业 知识 知识库

MASA MAUI Plugin (四)条形码、二维码扫描功能

MASA技术团队

MASA MAUI MASA Blazor

小白必看——台式机选购指南

科技热闻

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