当前位置: 首页 > news >正文

如何利用 SmartX 存储性能测试工具 OWL 优化性能管理?

作者:深耕行业的 SmartX 金融团队 张瑞松

运维人员在日常管理集群时,有时难免会产生这样的困惑:

  • 新业务准备上线,在具备多套存储的情况下,应如何选择承载业务的存储环境?

  • 业务虚拟机刚上线时运行速度很快,而运行一段时间后,为什么软硬件没有直观的问题但运行还是会变慢?

  • 业务反馈虚拟机性能时好时坏,这是怎么回事?

  • 新上线的存储与原来的配置不一样,怎样判断两者的性能差别,以及他们分别适合运行什么样的业务?

这些场景都涉及到存储的性能监控,同时也考验运维人员利用监测数据合理安排业务放置、对性能进行调优的能力。

为了帮助用户更好地管理集群存储性能,SmartX 自主研发了自动化存储性能测试工具 OWL。本文中,我们将为大家介绍 OWL 的功能特性和使用方法,并通过实际应用展现如何利用 OWL 测试结果优化性能管理,避免性能瓶颈。

OWL 工具介绍

OWL 是 SmartX 自研的自动化存储性能测试 Web 平台,以 fio 作为性能获取工具,进行集群的性能压力测试。由于 fio 可以调整为多队列、多带宽、多 I/O 模型的测试情景,能够模拟大多数的业务 I/O(如 MySQL 的性能测试调优就经常使用 fio),因此成为了支持 OWL 的最佳选择。另外,OWL 并不绑定 SmartX 超融合集群,用户也可在其他环境中使用 OWL 进行性能测试

OWL 可以通过以下三个方面为用户提供帮助:

适应不同硬件配置,提供每套存储各自的存储性能“基线”

为了满足 IT 基础架构信创转型需求,用户可能会购入此前未接触过的国产配件。多种配件组合下,工程师需要了解这些新配置的存储可以达到多少性能、支持哪些应用和数据库。传统的验证方式是直接使用新架构试跑一台业务虚拟机,而使用 OWL 则可以通过模拟类似的 I/O 模型,验证集群的性能情况,从而测试出这套集群存储的性能基线。

参考存储性能基线,分类上线业务虚拟机

用户可基于 OWL 提供的存储性能基线,为需要上线的业务虚拟机选择合适的存储集群。比如 IOPS 较大的数据库业务,用户可使用全闪集群,而对于 IOPS 比较轻量、数据交互较少的业务,用户可使用性价比较高的混闪集群。

另外,OWL 除了能让用户预先了解每台主机能承载的最大 I/O,还可以通过搭建模拟环境,帮助用户在业务上线前了解其可能需要的 I/O 大小,合理分配虚拟机放置,避免将多台带宽占用较大的虚拟机放在一台主机上,导致业务正式上线后出现带宽“被业务追着跑”的情况。

结合告警功能,主动告警性能瓶颈风险

用户在使用 OWL 获取性能测试基线后,可在每套集群的告警规则上设置对应存储性能的读写带宽阈值。当虚拟机的带宽达到了主带宽的 70% 和 80% 时,运维工程师会分别收到告警提示,从而及时观察虚拟机及其他主机的带宽占用情况。这样用户可以在新业务上线之前,将这台虚拟机迁移到相对空闲的主机或集群上。

OWL 使用方法及测试流程

测试前准备

由于 OWL 工具以虚拟机形式运作,用户需要进行 ovf 导入,为 OWL 配置 IP 地址,且保证 OWL 与 test VM ssh 通讯。Test VM 配置要求如下:

  • Linux 2c 4G 40G+50G

  • 配置 IP 地址,且与 OWL 工具 ssh 通讯

  • 安装 FIO 软件

测试流程

  1. 登录 OWL Web 界面。

  2. 创建测试模型。

  3. 添加测试对象。

  4. 创建测试任务。

  5. 启动测试任务。

  6. OWL 结合告警功能,主动告警性能瓶颈风险。

详细测试过程,请参考以下 Demo 演示:集群存储性能的监控管理与自动化测试工具介绍。

利用测试结果优化存储性能管理

常用测试模型

以下为演示中我们常用的 I/O 测试模型。

图片

告警阈值计算与设置方式

通过上面的测试拿到性能基线后,用户可以计算出对应的写带宽阈值和读带宽阈值,并在集群里添加告警规则。我们以下图为例介绍阈值的计算方式。

两副本

图片

以上两组数据,分别是对 8 节点集群中 1 台主机运行 1 台虚拟机,和 8 台主机分别运行 1 虚拟机,进行测试。

我们主要关注带宽。以写带宽为例,在 8P8V 256K 顺序写场景中,写带宽为 7278。我们将 7278 除以 8,得到每一个节点带宽的平均值,然后再将 MBPS 换算成 BPS,该值的 70% 就是我们需要设定为注意级别的告警阈值。

写带宽严重告警阈值我们会看 8P1V 256K 场景下的数值。这里写带宽是 1656.86 MBPS,经过单位换算后,这个数值的 80% 将直接作为严重级别的告警阈值。由此,我们得到两个写带宽阈值数值,如下图所示。

图片

读带宽告警阈值计算方式与写带宽相同,上述例子中读带宽阈值设置如下图所示。

图片

用户实践

案例一:运维工程师及时收到性能告警,规避业务影响

某用户使用 OWL 工具进行带宽压测后发现,集群中的某一节点带宽超过了 1.7 GB/s,已超过严重警告级别的阈值。SmartX 后台自动发送告警,提醒运维工程师存储性能已接近极限,从而避免对业务带来直接影响。

图片

案例二:某国有银行利用 OWL 定制 I/O 模型测试集群性能

某国有银行为了满足监管需求,利用 OWL 按照定制 I/O 模型(48K,randrw=1:9)连续 12 小时测试集群性能。测试结果显示(如下图),该集群平均 IOPS 标准差可达 54338,延时在 1 毫秒左右。

图片

案例三:某国有银行利用 OWL 评估集群性能是否满足 99th Percentile 要求

某国有银行关注到 99th Percentile 要求,利用 OWL 测试对应的块大小下的存储性能,直观了解该场景下集群的性能情况。测试结果如图所示。

图片

欲了解更多 SmartX 超融合智能运维特性,请阅读:一文了解 SmartX 超融合硬盘健康检测机制与运维实践,或扫描下方二维码,获取《SmartX 超融合技术原理与特性解析合集(含 VMware 对比详情)》电子书。

相关文章:

如何利用 SmartX 存储性能测试工具 OWL 优化性能管理?

作者:深耕行业的 SmartX 金融团队 张瑞松 运维人员在日常管理集群时,有时难免会产生这样的困惑: 新业务准备上线,在具备多套存储的情况下,应如何选择承载业务的存储环境? 业务虚拟机刚上线时运行速度很快…...

固定资产管理措施怎么写

固定资产管理措施是指企业在进行固定资产管理时所采取的各种措施和方法。以下是一些常见的固定资产管理措施:  建立完善的固定资产管理制度。制定明确的资产采购、使用、维护、报废等流程和标准,确保资产管理的规范性和透明度。  采用先进的资产管理…...

C语言中typedef和const的区别

昨天面试的时候面试官问了这个问题,平时也有见过这两个类型限定词,可能是因为不怎么使用的原因,当问到它们的区别时,我不知道从哪个方面开始回答。 用 typedef 定义新的类型名 类型定义的书写格式为 typedef 类型 被定义的类型名 …...

大数据系列教程之 Kafka基础

kafka概述 一、kafka概述 1.1 定义1.2 消息队列 1.2.1 传统消息队列的应用场景1.2.2 消息队列的两种形式1.3 Kafka 基础架构二、kafka安装部署 2.1安装部署 2.1.1.jar包下载2.1.2.解压到指定的文件夹下2.1.3.创建两个文件夹以供后续使用2.1.4. 修改配置文件 (1&…...

【Go 基础篇】Go语言日期与时间函数详解:时间的掌控与转化

Go语言是一种快速、简洁且高效的编程语言,它在处理日期与时间方面提供了丰富的标准库函数。本文将详细介绍Go语言中处理日期与时间的函数,涵盖常用的日期时间操作、格式化、时区转换等内容,并介绍time.Time结构体中的相关方法。 时间的表示与…...

抽象工厂模式:创建相关对象族

欢迎阅读设计模式系列的第四篇文章!在前面的文章中,我们已经学习了设计模式的基本概念以及工厂方法模式的应用。 今天,我们将继续深入,介绍第三个模式——抽象工厂模式。 抽象工厂模式简介 抽象工厂模式是一种创建型设计模式&a…...

uniapp:安卓permission权限表及setting表

安卓permission权限表 权限名称说明android.permission.WRITE_USER_DICTIONARY允许应用程序向用户词典中写入新词android.permission.WRITE_SYNC_SETTINGS写入 Google 在线同步设置android.permission.WRITE_SOCIAL_STREAM读取用户的社交信息流android.permission.WRITE_SMS允…...

汽车服务门店小程序模板制作指南

在数字化时代,一个小程序的力量不可忽视。它不仅是展示品牌形象和提供用户服务的重要工具,更是扩大客户群体和提高营收的关键手段。对于汽车服务门店来说,拥有一个精美且功能齐全的小程序,更将成为你在竞争激烈的市场中的重要武器…...

Apache SeaTunnel 2.3.3 版本发布,CDC 支持 Schema Evolution!

时隔两个月, Apache SeaTunnel 终于迎来大版本更新。此次发布的 2.3.3 版本在功能和性能上均有较大优化改进,其中大家期待已久的 CDC Schema evolution(DDL 变更同步)、主键 Split 拆分、JDBC Sink 自动建表功能、SeaTunnel Zeta …...

工厂方法模式的概述和使用

目录 一、工厂方法模式概述1. 定义2. 使用动机 二、工厂方法模式结构1. 模式结构2. 时序图 三、工厂方法模式的使用实例四、工厂方法模式的优缺点五、工厂方法模式在Java中应用 原文链接 一、工厂方法模式概述 1. 定义 工厂方法模式(Factory Method Pattern)又称为工厂模式&…...

HP惠普星15青春版/惠普小欧笔记本电脑15s-du1008tx原装出厂Win11系统

适用型号:15s-du1007tx、15s-du1008tx、15s-du1009tx、15s-du1010tx、15s-du1011tx、15s-du1012tx、15s-du1013tx 自带所有驱动、出厂主题壁纸LOGO、Office办公软件、惠普电脑管家等预装程序 所需要工具:32G或以上的U盘 文件格式:ISO 文件大…...

聊聊检索增强,LangChain一把梭能行吗?

背景 ChatGPT诞生之初,大家仿佛从中看到了未来:可以拿着大语言模型(LLM)这把锤子,锤遍业务上的钉子。其中最被看好的场景,莫过于搜索,不仅是微软、谷歌、百度这样的大公司将LLM用到自己的搜索业…...

【力扣】343. 整数拆分 <动态规划、数学>

【力扣】343. 整数拆分 给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k > 2 ),并使这些整数的乘积最大化。返回可以获得的最大乘积 。 示例 1: 输入: n 2 输出: 1 解释: 2 1 1, 1 1 1。 示例 2: 输入: n 10 输出:…...

数据结构--5.1图的存储结构(十字链表、邻接多重表、边集数组)

目录 一、十字链表(Orthogonal List) 二、邻接多重表 三、边集数组 四、深度优先遍历 一、十字链表(Orthogonal List) 重新定义顶点表结点结构: datafirstInfirstOut 重新定义边表结构结点: tailV…...

mac上 Kratos 配置 protoc

前言 protoc 是 protobuf 文件(.proto)的编译器,可以借助这个工具把 .proto 文件转译成各种编程语言对应的源码,包含数据类型定义、调用接口等。 protoc 在设计上把 protobuf 和不同的语言解耦了,底层用 c 来实现 protobuf 结构的存储&#x…...

【c++5道练习题】①

目录 一、有限制的累加 二、计算日期到天数转换 三、仅仅反转字母 四、 字符串的第一个唯一字符 五、字符串最后一个单词的长度 一、有限制的累加 题述: 求123...n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句…...

最佳实践:TiDB 业务读变慢分析处理

作者:李文杰 网易游戏计费 TiDB 负责人 在使用或运维管理 TiDB 的过程中,大家几乎都遇到过 SQL 变慢的问题,尤其是查询相关的读变慢问题。读变慢的问题大部分情况下都遵循一定的规律,通过经验的积累可以快速的定位和优化&#xff…...

【ES6】Getter和Setter

JavaScript中的getter和setter方法可以用于访问和修改对象的属性。这些方法可以通过使用对象字面量或Object.defineProperty()方法来定义。 以下是使用getter和setter方法的示例&#xff1a; <!DOCTYPE html> <script>const cart {_wheels: 4,get wheels(){retu…...

3DS Max中绘制圆锥箭头

3DS Max中绘制圆锥箭头 绘制结果绘制过程步骤一&#xff1a;绘制立体圆锥方法1方法2 步骤二&#xff1a;圆锥体调参&#xff08;模型尺寸设置&#xff09;1圆锥体参数说明2圆锥体参数调整 步骤三&#xff1a;绘制圆柱体步骤四&#xff1a;圆柱体调参步骤五&#xff1a;圆锥与圆…...

虚拟机Ubuntu20.04 网络连接器图标开机不显示怎么办

执行以下指令&#xff1a; sudo service network-manager stop sudo rm /var/lib/NetworkManager/NetworkManager.state sudo service network-manager start...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名&#xff08;Class Name)2.协议名&#xff08;Protocol Name)3.方法名&#xff08;Method Name)4.属性名&#xff08;Property Name&#xff09;5.局部变量/实例变量&#xff08;Local / Instance Variables&…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...