基于 Prometheus 的超算弹性计算场景下主机监控最佳实践

作者:左知

超算场景的业务特点

主机监控,或许是监控/可观测领域最传统和普遍的需求。在超算训练,AI 大规模训练的业务场景下,主机监控又有哪些痛点和难点呢?根据我们针对多个大规模超算客户的需求整理,超算场景的特点主要集中在如下几个方面:

大规模计算

超算擅长处理可并行化的计算问题,通过成千上万的处理器核心协同工作,实现任务的分解与加速执行。用户通常采用弹性任务调度系统在云上快速拉起大量的 ECS 主机来满足大规模计算需求。训练任务进行时计算集群整体算力利用率等是成本控制的关键。

高性能与吞吐量

超算系统设计用于处理大规模数据集,能够持续高效地完成大量计算工作,保证高吞吐量,适用于大数据分析、气候模拟、生物信息学研究等领域。如果计算集群某些算力机器出现吞吐瓶颈,即会影响整体计算性能。

弹性计算

在超算场景中,每一次训练任务一般持续几个小时到几天不等,每一次训练的算力需求也差异较大。通常用户采用弹性算力供给方式,在需要时拉起算力资源,结束时完成释放。计算任务的规模和复杂性迅速变化,也可能需要在短时间内快速增加或减少计算资源。

业务高峰与低谷

特定时段会对计算资源有极高的需求,而在其他时期则可能需求降低,形成明显的需求波动。

混合计算任务

超算任务可能会同时使用大量的 CPU 、GPU 、RDMA 等资源,以实现更高效的计算性能。不同的主机上可能存在异构的资源类型以支撑不同的计算任务。

超算场景面临的可观测挑战

在超算应用场景中,计算性能的极致要求和资源的动态伸缩特性给主机可观测提出了复杂挑战。为了确保新增计算节点能够迅速并稳定地融入整体计算环境,同时兼顾成本效率,可观测性策略需要精心设计和实施,通过可观测可以及时发现潜在的问题点,或者资源优化点等。

超算场景下,主机可观测面临的挑战有如下几点:

精细化监控

对计算节点的运行状态、负载、网络延迟等关键指标进行秒级监控,是确保系统稳定性和高效性的前提。

进程级监控能力

超算任务往往会以进程形式运行在主机上,不仅需要对主机整体资源消耗有监控,还需要对具体计算任务资源消耗具备可观测能力。进程间的横向资源消耗对比,可帮助快速发现资源消耗异常的进程。进程的数量监控,以及进程下的协程数量等,都是关键的可观测指标。

自动化服务发现

监控系统需配备自动服务发现机制,以便在节点弹性伸缩时,能够立即识别新增或被释放的节点,以实现秒级单位下纳入监控系统。

自动部署监控探针

对于新增的计算节点,自动部署监控组件是迅速实现节点加入监控体系的关键。通常对于不同算力的主机进行智能识别,以安装对应的数据采集组件,例如区分 Windows 或 Linux 主机吗,GPU 算力,RDMA 高性能网络需求。

数据标签分类

数据标签(也称为标签或标签键)是与指标相关联的元数据,用来提供额外的上下文信息,以便对指标进行更细致的分类、筛选和分组。根据使用场景和用途不同,需要增加特定的标签,例如组织性标签、环境标签、业务标签等。通过适当地使用和组合不同的数据标签,可以提高监控数据的可查询性和可操作性,并帮助您构建一个更加强大和灵活的可观测性解决方案。

超算场景弹性主机监控方案

阿里云 Prometheus 主机监控针对阿里云 ECS 服务器提供了一个高效且易于管理的监控方案,这一方案的特点是顺应了现代云计算环境中对于可观测性和自动化管理的需求,阿里云 Prometheus 主机监控具备如下优势。

阿里云 Prometheus 提供的主机监控,具备阿里云 ECS 服务器、自建 IDC 内服务器、云厂商服务器全类型主机接入能力,针对阿里云 ECS 服务器可根据配置自动安装各类开源 Exporter,各类 Exporter 采集配置自动生成,托管 Prometheus Agent 实现自动采集,采集数据统一存储、统一展示、统一告警。对于非阿里云主机不具备自动服务发现的能力,所以需要依赖用户在接入时手动安装阿里云采集探针,主动将监控数据上报到阿里云 Prometheus 存储。

图片

阿里云 Prometheus 主机监控架构

主机秒级发现

  • 适应性:自动服务发现机制允许监控系统快速适应云资源的动态变化,确保所有运行中的实例都被及时监控。
  • 多样性:支持多种服务发现类型,满足不同场景下的监控需求,如支持 Kubernetes 集群内服务的自动发现,以及其他类型云服务的集成。

探针秒级安装

  • 即插即用:自动化安装 Exporter,使得新启动的计算节点可以立即被监控系统识别并收集其度量,无需人为干预。
  • 全面监控:提供多种 Exporter,包括 Node-exporter、Process-exporter、GPU-exporter 和中间件 Exporter,进行全方位的性能追踪。

指标秒级采集

  • 配置简化:自动化配置生成减轻了运维人员手动配置的负担,确保所有节点和服务的度量都能被准确无误地采集。
  • 灵活性:配置可根据现有的监控需求作出相应调整,带来灵活性和可扩展性,应对复杂多变的监控环境。

主机从创建到纳入监控系统,整体可以在 30-60s 以内完成。主机所有指标数据可以支持 1-60s 时间间隔的灵活调整。整体实现主机全方位秒级监控能力。

探针 Serverless 化

  • 集中管理:通过托管的 Prometheus Agent 统一管理数据采集,简化了监控架构,提高了运维效率。用户对数据采集链路无感知。
  • 高效能:因为抽象了监控算法的复杂性,使用 Agent 可以减少误配的可能性,提高监控数据的准确性和时效性。

智能指标标签

  • 自动摘取阿里云 ECS 主机的标签、资源组、区域等信息,并自动注入到整个指标体系中,方便快捷。
  • 配置化自定义添加额外标签能力,可进一步提升标签体系的灵活性,自定义例如业务标识、环境标识、数据来源标识等。

超大规模数据采集与存储

  • 支持超大规模主机接入,采用用户独享与共享并存托管模式,依据用户主机接入规模动态调整托管资源,保证接入的时效和准确性。
  • 存储可支持超大规模指标存储,并具备高性能的查询和展示能力。

提供完善的上下游监控数据

  • 为了实现一个系统级的、全面的可观测性,单一实体监控是不够的,需要整合不同维度的监控数据并构建全链路观测,确保监控系统能够反映出整个应用和服务生态的健康和表现。
  • 涵盖从底层硬件到应用层再到外部服务(如 RDMA 网络、OSS 存储、Redis 等)的综合监控策略。这个策略应该包括不仅仅是主机和网络的监控,还包括对依赖服务的监控。

进程级监控

  • 进程级监控可以对操作系统运行的进程进行跟踪和分析,以了解进程的性能和资源利用情况。这是实现系统级监控的关键部分,旨在提供运行在服务器上的应用程序的健康和表现的透视图。
  • 进程级监控除了会捕获进程的 CPU 使用率、进程的内存使用量、进程的磁盘读写情况等关键性能指标,还会收集进程的启动时间、打开的文件的句柄数、进程下调起的线程数量等。提供接近于实时的监控能力,做到即时的反馈,让系统管理员能够及时识别和解决问题。
  • 进程级监控,为管理员提供更加丰富的故障诊断手段,帮助识别导致系统性能下降或故障的进程,可能是某些进程内存泄露、高 CPU 使用率或其他资源争用等。

默认提供 Grafana 数据大盘

  • 默认集成经过阿里云专家经验沉淀的 Grafana 大盘,包括 ECS Overivew 总览大盘、ECS Detail 详细大盘、GPU Overview 总览大盘、GPU Detail 详细大盘、Node-process 进程级大盘。
  • 真正做到一键接入主机可观测,开箱即用。

实践方式

接入方式以阿里云 ECS 服务器为例,在应用实时监控页面,点击接入管理,选择 ECS 环境,点击新增接入,可分别接入 GPU 监控和主机监控。其中 GPU 监控对应接入 GPU 类型主机,默认会自动安装 GPU-exporter;其中主机监控对应接入 CPU 类型主机,默认会自动安装 Node-exporter 和 Process-exporter。

图片

针对阿里云 ECS 服务器,支持多种类型的服务发现方式,可灵活选择需接入监控的目标服务器,服务发现方式 CPU 主机和 GPU 主机没有差异。

图片

成功接入后,会依据主机类型显示服务发现的主机数量、以及 Exporter 安装和运行情况。

图片

自监控页面,可实时查看 GPU 和 CPU 主机接入采集状态,以及实时获取源数据。

图片

接入效果

阿里云 Prometheus 主机监控服务的接入效果总结如下:

  1. 快速服务发现
    • 实测每次大规模主机弹性伸缩(约 500 台规模)的发生,监控服务能够在一分钟内发现新的计算节点。
  2. 迅速部署 Exporter
    • 必要的 Exporter(Gpu-exporter、Node-exporter、Process-exporter)可以在一分钟内完成自动安装,这意味着每台服务器可以接近实时开始生成监控数据。
  3. 低数据可观测延迟
    • 自计算节点创建并运行起来,到用户可以观察到监控数据,整个过程的延迟时间控制在两分钟内,大大降低了监控数据的丢失率。
  4. 及时停止数据采集
    • 对于下线的计算节点,监控数据的停止采集时间同样保持在两分钟内,这保证了系统资源的高效使用。如果主机未被销毁,系统将自动卸载 Exporter 并删除其配置,优化了资源的回收过程。
  5. 高效并发处理能力
    • 阿里云 Prometheus 主机监控能够承载高并发的监控任务,有效地根据用户弹性主机数量的变化进行调整,满足不同用户、规模和时效性的需求。

阿里云 Prometheus 主机监控服务通过以上能力为超算用户提供了强大的监控保障。这种快速而精准的可观测性能力是超算用户在云环境中实现资源动态管理和性能优化的关键。能够及时响应计算资源的弹性伸缩对于确保计算作业的连续性、洞察系统瓶颈和异常行为,以及指导资源分配决策至关重要。

集成大盘

阿里云 Prometheus 主机监控,当接入 GPU 监控和 CPU 主机监控,默认集成对应大盘,提供包括计算节点基础观测、进程观测、协程观测、GPU 观测等。

图片

主机监控默认集成大盘列表

图片

主机监控 GPU 监控默认集成大盘

默认集成的观测大盘,阿里云专家根据实践积累,预置了多种核心观测点大盘、多重聚合维度观测视角大盘,真正做到开箱即用。

图片

ECS Overview大盘

图片

ECS Detail 大盘

图片

Node Process 进程大盘

图片

GPU Overview 总览大盘

图片

GPU Detail 详细大盘

总结

在超算场景中,随着计算需求的高度动态性和对性能极致追求,对云计算服务提供商提出了快速调整资源以应对业务高峰与低谷的挑战。阿里云 Prometheus 提供的主机监控方案积极响应了可观测需求,通过强化其自动化监控能力,为资源优化和提升成本效益提供可靠的监控指标。

阿里云 Prometheus 主机监控实践能力包括如下四点:

  1. 自适应的自动服务发现,保障云资源的实时监控覆盖,应对资源动态伸缩的需求。

  2. 自动化的 Exporter 部署,降低了运维难度,提供了即插即用的监控能力,及时追踪新节点的度量。

  3. 自动生成的 Prometheus 配置,简化了监控配置的复杂性,增加了监控架构的灵活性和可扩展性。

  4. 托管的 Prometheus Agent,实现了监控数据采集的集中管理和优化,提高了数据的准确性和有效性。

以上能力使阿里云 Prometheus 提供的主机监控具备如下优势:

提高运维效率: 自动化的监控系统降低了人力投入,释放了运维团队的工作负担,使他们可以投入到更重要的优化任务中。

快速响应问题: 实时监控和快速服务发现机制,缩减了从诊断到解决问题的时间,提高了系统的可靠性。

资源使用优化: 实时细粒度监控带来了资源使用的深入讲解,指导资源调度的优化,降低资源浪费,实现成本控制。

增强的可扩展性和可靠性: 自动化和智能化的监控手段保证了即使在主机数量大规模扩展的情况下,监控的全面性和准确性都不会受到影响。

综上,阿里云 Prometheus 主机监控方案正成为超算场景下管理与监控云资源的强有力支撑,它不仅有效地保障了云基础设施的高效和健康,也为企业进一步拓展其高性能计算能力提供了坚实的基础。

目前可观测监控 Prometheus 版,提供每月 50GB 数据写入免费额度,满足日常监控基本需求,点击此处,立即开始体验。

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/634946.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode:柱状图中最大的矩形

文章收录于LeetCode专栏 LeetCode地址 柱状图中最大的矩形 题目 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例1 **输入:**heights …

FastAPI单元测试:使用TestClient轻松测试你的API

当使用FastAPI进行单元测试时,一个重要的工具是TestClient类。TestClient类允许我们模拟对FastAPI应用程序的HTTP请求,并测试应用程序的响应。这使我们能够在不启动服务器的情况下对API进行全面的测试。 下面我将详细讲解TestClient的使用方法和常见操作…

empirecms 文件上传 (CVE-2018-18086)

漏洞环境&#xff1a;vulfocus 到管理后台 使用用户名密码&#xff1a;admin:123456登录&#xff0c;然后到后台找到文件上传点 发现需要后缀名为.mod 创建生成一句话木马的php脚本&#xff0c;并添加.mod后缀名&#xff0c;然后提交 <?php file_put_contents("shell…

攻防世界---web---warmup

1、题目描述 2、查看源码&#xff0c;发现有个source.php 3、访问该文件&#xff0c;得到这一串代码 4、分析代码 5、访问hint.php&#xff0c;提示flag在ffffllllaaaagggg这个文件下 6、构造payload ?filesource.php?/../../../../../../ffffllllaaaagggg

网络性能与流量监控:优化企业网络管理的关键策略

目录 网络性能监控的重要性 1. 提高网络可靠性 2. 优化网络资源使用 3. 提升用户体验 网络流量监控的必要性 1. 识别异常流量 2. 改善网络管理 3. 确保合规性 AnaTraf网络流量分析仪&#xff1a;提升网络监控效率的利器 如何实施有效的网络监控策略 1. 确定监控目标…

php发送短信功能(创蓝短信)

一、以下是创蓝发送短信的功能&#xff0c;可以直接执行&#xff1a; <?php$phone 12312312312;$msg 测试短信功能;echo 发送手机号&#xff1a;.$phone.<br/>;echo 发送内容&#xff1a;.$msg.<br/>;$send sendMessage($phone, $msg);var_dump($send);…

2024电工杯数学建模 - 案例:最短时间生产计划安排

# 前言 2024电工杯(中国电机工程学会杯)数学建模思路解析 最新思路更新(看最新发布的文章即可): https://blog.csdn.net/dc_sinor/article/details/138726153 最短时间生产计划模型 该模型出现在好几个竞赛赛题上&#xff0c;预测2022今年国赛也会与该模型相关。 1 模型描…

BUUCTF---misc---我吃三明治

1、下载附件是一张图片 2、在winhex分析&#xff0c;看到一串整齐的编码有点可疑&#xff0c;保存下来&#xff0c;拿去解码&#xff0c;发现解不了&#xff0c;看来思路不对 3、再仔细往下看的时候也发现了一处这样的编码&#xff0c;但是这次编码后面多了一段base编码 4、拿去…

抖音小店什么产品最好卖?六月份的必爆产品!商家抓紧上架!

哈喽~我是电商月月 做抖音小店&#xff0c;爆款是非常吃香的&#xff0c;但普通玩家只有在爆款出来的那几天才能发现&#xff0c;再去截流&#xff0c;其实热度已经不高了&#xff0c;那想吃到这一口“螃蟹”只能自己去挖掘 每年爆的产品就是那几种&#xff0c;我们可以朝这几…

java自学阶段二:JavaWeb开发--day04(Maven学习)

day04学习笔记 一、学习目标 1.了解maven的基础概念&#xff1b; 2.学会maven的部署&#xff1b; 3.maven的作用&#xff1a;标准化&#xff1b;方便找依赖 maven就是一个开源项目&#xff0c;专门用来管理和构建Java项目的&#xff1b;我们自己写的项目结构可能会千奇百怪&am…

OpenAI 与 Reddit 达成重要合作伙伴关系

Reddit是一个娱乐、社交及新闻网站&#xff0c;注册用户可以将文字或链接在网站上发布&#xff0c;使它基本上成为了一个电子布告栏系统。注册用户可以对这些帖子进行投票&#xff0c;结果将被用来进行排名和决定它在首页或子页的位置。网站上的内容分类被称为“subreddit”。s…

列表的创建和删除

目录 使用赋值运算符直接创建列表 创建空列表 创建数值列表 删除列表 自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501\ 对于歌曲列表大家一定很熟悉&#xff0c;在列表中记录着要播放的歌曲名称…

ROS 手眼标定 realsense435+ur5e

手眼标定的原理 基坐标系&#xff08;base_tree&#xff09;和相机&#xff08;camera_tree&#xff09;两个坐标系属于不同的tree&#xff0c;通过将标签贴到手上&#xff0c;相机识别出标签的position和orention&#xff0c;并通过easy_handeye标定包得到tool0(机械手)&…

Docker 部署Jenkins

1、运行镜像 docker run --namejenkins \--restartalways \--privilegedtrue \-u root \-p 8080:8080 \-p 50000:50000 \-v /home/docker/jenkins/jenkins_home:/var/jenkins_home \-v /usr/bin/docker:/usr/bin/docker \-v /var/run/docker.sock:/var/run/docker.sock \-e TZ…

Java面试八股之有哪些线程安全的集合类

Java中有哪些线程安全的集合类 在Java中&#xff0c;并非所有的集合类都是线程安全的&#xff0c;但在多线程环境下&#xff0c;确保集合操作的线程安全性至关重要。以下是几个典型的线程安全集合类&#xff1a; Vector: 类似于ArrayList&#xff0c;但它是线程安全的。它通过…

【学习笔记】后端(Ⅰ)—— NodeJS(Ⅰ)

NodeJS 1、概述 1.1、NodeJS是什么 1.2、NodeJS的主要作用 1.3、NodeJS的优点 1.4、NodeJS 与 浏览器 的 JavaScript 对比 1.4.1 ECMAScript 介绍 1.4.2 JavaScript 介绍 1.4.3 TypeScript 介绍2、基础篇 2.1、Buff…

技术专家分享 | OPENAIGC开发者大赛能量加油站6月1日场预约开启~

由联想拯救者、AIGC开放社区、英特尔联合主办的“AI生成未来第二届拯救者杯OPENAIGC开发者大赛”自上线以来&#xff0c;吸引了广大开发者的热情参与。 为了向技术开发者、业务人员、高校学生、以及个体创业人员等参赛者们提供更充分的帮助与支持&#xff0c;AIGC开放社区特别…

半导体测试基础 - AC 参数测试

AC 测试确保 DUT 的时特性序满足其规格需求。 基本 AC 参数 建立时间(Setup Time) 建立时间指的是在参考信号(图中为 WE)发生变化(取中间值 1.5V)前,为了确保能被正确读取,数据(图中为 DATA IN)必须提前保持稳定不变的最短时间。在最小建立时间之前,数据可以随意变…

【python】python省市水资源数据分析可视化(源码+数据)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

今年为什么有这么多商家转战到视频号小店?有钱不赚那是“傻子”

大家好&#xff0c;我是电商小V 对于了解电商的玩家来说&#xff0c;今年很多玩家都发现一个现象那就是很多的抖音电商玩家都开了视频号小店&#xff0c;这是因为抖音小店不好做了吗&#xff1f;其实并不是的&#xff0c;抖音小店依旧是可以操作的&#xff0c;但是视频号小店是…