简介:SLS团队联合EBS团队发布了EBS Lens,针对块存储提供数据分析、资源监控的功能,可以帮助用户获取云上块存储资源信息与性能监控数据、提升云上块存储资源的管理效率、高效分析业务波动与资源性能消耗情况。

EBS监控现状

块存储是阿里云为云服务器ECS提供的块设备产品,具有高性能和低时延的特点。临近双十一,在大促的时候,磁盘IO往往是运维的重点,如果磁盘被打爆了,那么关键的业务可能会停滞甚至崩溃。EBS监控目前存在几个问题

  1. 块存储提供的原生监控仅限制在单实例级别,只能查看单个云盘的性能监控,缺少对全局云盘状态的监控,如果云盘数量很多,那么云盘状态的监控就非常麻烦

  1. 通过SLS Logtail, Telegraf或者云监控agent等,可以实现对单个ECS实例所有云盘的状态的监控。但是这些监控方式都是侵入式的,agent的安装、监控大盘的维护、云盘实例监控精细化控制、以及跨ECS实例的监控,对于用户来说,都有很大的学习成本和代价
  2. 分析维度单一,以上场景下,对云盘的监控和分析还是基于云盘id的,而云盘资产本身的属性也包含很多信息。比如用户想看到一个自己所有云盘资产的大图、各个地域的云盘分布、各个云盘类型的比例等信息,都是很难做到的。

正是考虑到用户对EBS监控的使用有如上的痛点,SLS团队联合EBS团队发布了EBS Lens(Lens, 透镜的意思,取名为Lens意味着洞察云产品细微的变化),针对块存储提供数据分析、资源监控的功能,可以帮助用户获取云上块存储资源信息与性能监控数据、提升云上块存储资源的管理效率、高效分析业务波动与资源性能消耗情况。

EBS Lens产品特点

自动化数据采集

EBS Lens开启后,SLS会自动从用户的EBS资产中拉取云盘列表。进入APP后首先展示的就是接入管理页面,在这个页面,可以看到EBS云盘全局的一个管理视图,包含以下信息:

  • 展示当前接入的云盘总量、数据采集的云盘数量、云盘的地域和目标存储库的数量。
  • 展示EBS实例信息。例如,实例ID、标签、云盘种类、云盘类型、可用区信息、采集状态、采集操作等信息。如果用户在开启EBS Lens之后,对EBS云盘有新建、更新和删除操作的话,SLS会自动更新这里的云盘列表

采集配置

EBS云盘资产同步过来之后,需要用户开启云盘资产的监控数据采集。在这里,我们提供两种采集方式,一种是供用户进行精细化管理的手动采集,还有一种是在EBS云盘数量过多的情况下,方便用户全局管理的自动化采集。

手动采集

  • 支持对单个实例的采集状态进行管理
  • 考虑到EBS实例数量会比较多,这里支持在单个分页下面进行批量开启/批量关闭操作

自动化采集

当用户云盘有几百甚至上千个的时候,手动采集的管理方式显然不能满足需求,因此我们还提供了一个自动化采集的功能。自动化采集提供了图形化的配置界面:

  • 可以使用地域、实例ID、付费类型、磁盘类型、标签等属性设置采集条件。
  • 标准模式下各个条件之间为且关系。高级模式下,您可以灵活组合与嵌套条件。

配置保存之后,自动化采集立刻开启。所有满足条件的云盘,都会自动打开日志采集,从而省去了手动操作的步骤,另外当实例有所增减的时候,自动化采集也能够感知实例的变化,进行相应的调整。

存储库信息展示

开启云盘监控数据采集之后,SLS会从EBS云盘上拉取监控数据,然后投递到用户配置的目标存储库里,以时序数据的形式进行存储,在目标存储库这个tab里,支持的功能有:

  • 支持查看存储目标库的地域、数据保存时间
  • 支持数据保存时间的调整

  • 点击目标库,可以进入SLS的project页面,查看原始监控数据

EBS云盘资产同步、日志采集开启之后,EBS Lens就有了EBS云盘资产和云盘的监控数据了,基于这两个数据,EBS Lens做了两个监控大盘,资源概览和性能分析页面。

多维度数据聚合与丰富的数据指标类型

  • 资源概览页面,提供一个全局的资产大盘,默认按照用户维度,提供用户账号下所有云盘的统计信息,包括:
  • 云盘总数量
  • 云盘总容量
  • 云盘实例所属地域个数
  • 云盘实例所属可用区个数
  • 启用快照云盘占比
  • 加密云盘占比
  • Top10容量的区域
  • Top10容量的可用区
  • 云盘类型容量分布
  • 付费类型容量分布

  • 除了账号的维度外,还支持对地域、付费类型、磁盘类型进行筛选,充分满足用户的各种统计需求

高精度的数据监控粒度

  • 性能分析页面提供了一个全局的云盘监控大盘,默认会统计用户账号下所有磁盘关键指标的监控,包括
  • 吞吐量
  • 总的吞吐量变化曲线
  • 读/写吞吐存储Top100的实例,以及吞吐变化曲线
  • IOPS
  • 总的IOPS变化曲线
  • 读写IOPS Top100的实例,以及IOPS变化曲线
  • 性能分析页面还支持对地域、付费类型、云盘类型、云盘id进行筛选,满足用户精细化监控的需求
  • 云盘监控粒度为10s,监控延迟为10s内,对于抖动类场景可以有效进行监控

使用场景

EBS Lens有这么便捷的管理方式以及丰富、多维度的监控指标,下面我们列举了几个常用的场景,来详细说明下EBS Lens的功能:

监控场景

下面我们模拟日常常见的磁盘IO异常的场景,展示下EBS Lens的在监控场景下的应用。

环境准备

  1. 首先我们创建一个云盘,或者使用已有的云盘,挂载到ECS实例上。挂载云盘的操作参见:挂载数据盘 - 云服务器 ECS - 阿里云,注意云盘挂载到ECS实例后,必须创建分区和文件系统,使云盘变为可用。
  2. 将账号下所有云盘通过自动化采集配置,打开监控数据采集

  1. 打开性能分析页面,确认云盘监控数据已接入进来

异常模拟

我们进入ECS实例中,使用dd来模拟一个对磁盘的异常写入的操作:

EBS Lens监控结果

在EBS Lens性能分析页面,从大盘里,我们发现有一块磁盘的吞吐量和IOPS迅速提升到TOP1。为了查看磁盘的详细指标,我们在过滤框内输入磁盘id,可以看到这个磁盘在选定时间范围内吞吐量和IOPS的变化。而该实例id,正是我们模拟的写入异常的磁盘。在线上,如果出现类似的问题,那么接下来我们就该去进行详细的问题定位,比如异常的服务日志打印、不合理的数据落盘等。通过调整时间范围,对于设置ttl范围内的数据,EBS Lens都支持在该页面进行展示,对于故障的复盘和分析也是有非常大的帮助的。

配合SLS的告警功能告警(新版) - 日志服务 - 阿里云,用户完全可以自动化的监控云盘的性能,准确定位异常云盘。

服务压测和性能调优

除了监控场景,EBS Lens在服务压测和性能调优的场景,同样有非常大的作用。所有关于性能方面的测试,最关键的基础设施就是监控指标。EBS Lens性能分析大盘就可以提供云盘实时的性能指标,这可以有效的帮助用户快速定位云盘是否存在性能瓶颈。我们模拟一个简单的写入场景:大量级的数据要以最快的速度写到磁盘上。

环境准备

  1. 我们采用跟上面环境一样的ECS环境,在这个场景下我们指定一个固定的云盘做测试

  1. 在EBS Lens的页面打开该云盘的监控数据采集

场景模拟

第一版本,这里使用FIO模拟性能比较差的一个随机写的实现场景:

fio -filename=/mnt/test1 -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest

通过EBS Lens的监控,我们发现云盘的吞吐和IO比较低,远远没有达到云盘的性能上限,分别为15MB/s,900。参考块存储性能指标文档:参考块存储性能 - 云服务器 ECS - 阿里云

因此我们再对写入脚本进行优化,把随机写的实现改成了比较好的顺序写的实现:

fio -filename=/mnt/test2 -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest

通过EBS Lens的监控,吞吐达到了47MB/s,而IOPS达到了3000左右。

通过块存储性能指标文档我们得知,SSD云盘的性能因数据块大小而异,数据块越小,吞吐量越小,IOPS越高。因此为了提高吞吐量,我们考虑提高单次写入的数据块大小:

fio -filename=/mnt/test2 -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=64k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest

通过EBS Lens的监控,吞吐达到了143MB/s,而IOPS下降到了2300左右。由此可以看到有了EBS Lens之后,对于磁盘IO的性能测试和调优,是多么的方便。

附录

说明

  1. EBS Lens目前处于公测期灰度开放中,如果有兴趣要试用,可以通过工单联系我们阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台,试用过程中有任何问题也可以直接联系到我们
  2. EBS Lens公测期相关功能全部免费,公测期结束前会提前进行公示,公测结束后,费用计算可以参考产品计费 - 日志服务 - 阿里云

参考文档

原文链接

本文为阿里云原创内容,未经允许不得转载。

块存储监控与服务压测调优利器-EBS Lens发布的更多相关文章

  1. 基于Dubbo的压测调优实例

    不久前参与开发了一个基于dubbo分布式框架的底层账单系统,并实现了其中的一部分业务接口,目前需对这些接口进行压测,以评估生产环境所能承受的最大吞吐量.笔者以其中一个查询接口为例来回顾此次压测的整体流 ...

  2. 常用的HTTP服务压测工具介绍

    常用的HTTP服务压测工具介绍 在项目正式上线之前,我们通常需要通过压测来评估当前系统能够支撑的请求量.排查可能存在的隐藏bug,同时了解了程序的实际处理能力能够帮我们更好的匹配项目的实际需求,节约资 ...

  3. jvm系列(六):Java服务GC参数调优案例

    本文介绍了一次生产环境的JVM GC相关参数的调优过程,通过参数的调整避免了GC卡顿对JAVA服务成功率的影响. 这段时间在整理jvm系列的文章,无意中发现本文,作者思路清晰通过步步分析最终解决问题. ...

  4. Nginx下载服务生产服务器调优

    一.内存调优 内核关于内存的选项都在/proc/sys/vm目录下.   1.pdflush,用于回写内存中的脏数据到硬盘.可以通过 /proc/sys/vm/vm.dirty_background_ ...

  5. 大数据技术之_08_Hive学习_04_压缩和存储(Hive高级)+ 企业级调优(Hive优化)

    第8章 压缩和存储(Hive高级)8.1 Hadoop源码编译支持Snappy压缩8.1.1 资源准备8.1.2 jar包安装8.1.3 编译源码8.2 Hadoop压缩配置8.2.1 MR支持的压缩 ...

  6. 高性能 Java 计算服务的性能调优实战

    作者:vivo 互联网服务器团队- Chen Dongxing.Li Haoxuan.Chen Jinxia 随着业务的日渐复杂,性能优化俨然成为了每一位技术人的必修课.性能优化从何着手?如何从问题表 ...

  7. 记一次Web服务的性能调优

    前言 一个项目在经历开发.测试.上线后,当时的用户规模还比较小,所以刚刚上线的项目一般会表现稳定.但是随着时间的推移,用户数量的增加,qps的增加等因素会造成项目慢慢表现出网页半天无响应的状况.在之前 ...

  8. (转)Mysql技术内幕InnoDB存储引擎-事务&备份&性能调优

    事务 原文:http://yingminxing.com/mysql%E6%8A%80%E6%9C%AF%E5%86%85%E5%B9%95innodb%E5%AD%98%E5%82%A8%E5%BC ...

  9. 数据库实例性能调优利器:Performance Insights

    Performance Insights是什么 阿里云RDS Performance Insights是RDS CloudDBA产品一项专注于用户数据库实例性能调优.负载监控和关联分析的利器,以简单直 ...

  10. 一目了然 | 数据库实例性能调优利器:Performance Insights

    Performance Insights是什么 阿里云RDS Performance Insights是RDS CloudDBA产品一项专注于用户数据库实例性能调优.负载监控和关联分析的利器,以简单直 ...

随机推荐

  1. autowired循环调用

    下面这段代码,表示那你的bean进行了循环调用. org.springframework.beans.factory.BeanCreationException: Error creating bea ...

  2. 单目测距那些事儿(上) | 从MobileEye谈起

    单目测距那些事儿(上) | 从MobileEye谈起 全面专业的自动驾驶学习资料:链接 前言 在ADAS领域,有个功能叫自适应巡航控制(Adaptive Cruise Control, ACC). A ...

  3. 记录--盘点 TypeScript 那些奇怪的符号

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 TypeScript是一种由微软开发的自由和开源的编程语言.它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和 ...

  4. el-select的简单封装,使其返回值中包含key,value,obj 三种值

    常规的el-select中change事件返回值,只有key返回,业务上有些需求有需要获取到value值,所以简单的封装了一下,使返回中包含key,value,obj三个值,基本上可以满足大部分的需求 ...

  5. LocalDate获取指定月的上个月的第一天和最后一天

    LocalDate date = LocalDate.of(2022, 8, 30); LocalDate lastMonth = date.minusMonths(1); // 当前月份减1 Loc ...

  6. wire和reg型变量的组合使用

    模型功能 实现寄存器之间的连线 实现寄存器的声明 建构时钟的时序系统 模型框图 `timescale 1ns / 1ps /* */ // ****************************** ...

  7. KingbaseES V8R6 集群运维案例 -- 磁盘空间问题导致集群故障

    某商业银行生产系统KingbaseES读写分离集群主库出现故障,导致集群主备发生切换.客户要求说明具体的原因. KingbaseES读写分离集群基本信息: KingbaseES集群信息   操作系统 ...

  8. KingbaseES数据目录结构

    KingbaseES数据库结构 [kingbase@postgres V8]$ tree -LP 2 data/ . ├── data │   ├── base # 存储用户创建的数据库文件及隶属于用 ...

  9. CSP 2021 入门级

    CSP 2021 入门级(DONE) 1.C 语言不支持面向对象. 2.计算机界的最高奖项"图灵奖"以英国的阿兰·艾伦·图灵命名,被称为"计算机界的诺贝尔奖". ...

  10. Socket.D v2.4.9 发布

    Socket.D 是什么东东? 是基于"事件"和"语义消息""流"的网络应用协议.在微服务.移动应用.物联网等场景,可替代 http.web ...