通过阿里云OOS定时升级Redis实例临时带宽

devtools/2024/11/9 16:45:44/

功能背景

在数据驱动的现代业务环境中,Redis以其卓越的性能和灵活性,已成为众多企业关键基础设施的重要组成部分。Redis广泛应用于处理缓存、会话管理、消息队列等多种数据密集型和响应敏感型的场景,对业务连续性和用户体验贡献极大。然而,每当企业遇到大规模的营销活动、产品上市或其他预定的高流量事件时,原有的带宽配置可能面临极大的挑战。在这些关键时刻,即使是微小的延迟也可能对企业造成不利的市场影响和用户留存损失。

为解决上述问题,系统运维管理OOS推出了定时升级Redis临时带宽的功能(您还可以通过OOS对ECS实例和EIP实例进行临时带宽升级),这一功能使得您能够根据业务负载预测,提前规划并实施带宽的定时升级,从而保障关键时刻应用的性能和稳定性,同时优化成本。

关键特性

  • 定时触发:用户可根据业务需求预设特定日期和时间,实现带宽的自动升级。
  • 自动回退:在设定的时长结束后,带宽自动恢复至原定标准,有效避免非高峰期的成本浪费。
  • 成本优化:通过只在需要时升级带宽,帮助企业在保证服务质量的同时,显著降低运营成本。
  • 简洁操作:用户友好的界面设计,仅需几步操作即可轻松完成带宽升级的设置。

应用场景

  • 电商平台促销活动:在大促销活动期间预设带宽升级,应对用户访问量激增的挑战。
  • 大型游戏更新:在游戏发布新版本或大型更新时升级带宽,保证玩家下载体验。
  • 节假日流量高峰:针对节假日期间可能出现的访问高峰,事先安排带宽提升。
  • 数据密集型任务执行:在进行大规模数据迁移或分析作业时,临时增加带宽,加快任务完成速度。

操作步骤

  1. 登录OOS控制台。
  2. 在左侧导航栏找到“自动化任务-公共任务模板”,搜索"ACS-Redis-ScheduleToUpgradeInstanceBandwidth",点击创建执行。

  1. 点击下一步: 设置参数,选择定时类型。

这里定时类型有“立即执行、仅在指定时间执行一次、周期性重复执行”三种方式。其中“立即执行”会在创建任务后立即进行重启操作,“仅在指定时间执行一次”只会在您设定的某个时间点执行一次,“周期性重复执行”则会安装一定的规则重复执行,如每一小时执行一次。

  1. 设置Redis实例所在地域, 通过手动选择实例、指定实例标签、指定实例资源组、上传CSV文件、选择全部几种方式选择您要操作的目标Redis实例、填写需要增加的带宽值带宽升级时间(最少1小时),选择一个具有Redis权限的角色,点击确定-创建,此时定时升级Redis临时带宽的任务就创建完成了,当到达设定的时间后就会自动对Redis带宽进行升级,并且在持续设定的时间后降低到原有带宽。

附录

执行流程图

整体执行流程图:

其中升级EIP实例带宽流程

模板

上述步骤中使用的模板“ACS-Redis-ScheduleToUpgradeInstanceBandwidth”内容如下(模板链接):

FormatVersion: OOS-2019-06-01
Description:en: Scheduled upgrade of the temporary bandwidth of a Redis instancezh-cn: 定时升级Redis实例临时带宽name-en: ACS-Redis-ScheduleToUpgradeInstanceBandwidthname-zh-cn: 定时升级Redis实例临时带宽
Parameters:RegionId:Type: StringLabel:en: RegionIdzh-cn: 地域IDAssociationProperty: RegionIdDefault: '{{ ACS::RegionId }}'Targets:Type: JsonLabel:en: TargetInstancezh-cn: 目标实例AssociationProperty: TargetsAssociationPropertyMetadata:ResourceType: ALIYUN::Redis::InstanceRegionId: regionIdTimerTrigger:Type: JsonLabel:en: TimerTriggerzh-cn: 定时类型AssociationProperty: ALIYUN::OOS::Component::TimerTriggerAssociationPropertyMetadata:MinuteInterval: 30Bandwidth:Type: NumberLabel:en: Bandwidthzh-cn: 要增加的带宽Description:en: Unit:MB/s. The maximum incoming bandwidth is 6 times the default bandwidth of this instance specification, but the upper limit is 192MB/s. For example, the default bandwidth of an instance is 10 MB/s, and the value range of this parameter is 0~60.zh-cn: 单位:MB/s。最大可传入该实例规格默认带宽的 6 倍,但上限为 192MB/s。例如实例默认带宽为 10 MB/s,本参数的取值范围为 0~60。MinValue: 1MaxValue: 192DurationHour:Label:en: DurationHourzh-cn: 带宽升级持续时间Description:zh-cn: 单位:小时。持续时间最少1小时en: Unit:Hour. The bandwidth upgrade should last at least 1 hoursType: NumberMinValue: 1Default: 1RateControl:Label:en: RateControlzh-cn: 任务执行的并发比率Type: JsonAssociationProperty: RateControlDefault:Mode: ConcurrencyMaxErrors: 0Concurrency: 10OOSAssumeRole:Label:en: OOSAssumeRolezh-cn: OOS扮演的RAM角色Type: StringDefault: ''
RamRole: '{{ OOSAssumeRole }}'
Tasks:- Name: TimerTriggerAction: ACS::TimerTriggerDescription:en: Triggers a task as scheduled by specifying type and expressionzh-cn: 通过指定触发类型和表达式按计划触发任务Properties:Type:Fn::Select:- type- '{{ TimerTrigger }}'Expression:Fn::Select:- expression- '{{ TimerTrigger }}'EndDate:Fn::Select:- endDate- '{{ TimerTrigger }}'TimeZone:Fn::Select:- timeZone- '{{ TimerTrigger }}'- Name: GetInstanceDescription:en: Get the redis instanceszh-cn: 获取Redis实例Action: ACS::SelectTargetsProperties:ResourceType: ALIYUN::Redis::InstanceRegionId: '{{ RegionId }}'Filters:- '{{ Targets }}'Outputs:InstanceIds:Type: ListValueSelector: Instances.Instance[].InstanceId- Name: UpgradeRedisInstanceBandwidthAction: ACS::Redis::UpgradeRedisInstanceBandwidthDescription:en: Modify redis instance bandwidthzh-cn: 调整Redis实例的带宽Properties:RegionId: '{{ RegionId }}'InstanceId: '{{ ACS::TaskLoopItem }}'Bandwidth: '{{ Bandwidth }}'DurationHour: '{{ DurationHour }}'Loop:RateControl: '{{ RateControl }}'Items: '{{ GetInstance.InstanceIds }}'
Metadata:ALIYUN::OOS::Interface:ParameterGroups:- Parameters:- TimerTriggerLabel:default:zh-cn: 定时设置en: Timer Trigger Configure- Parameters:- RegionId- Targets- Bandwidth- DurationHourLabel:default:zh-cn: 选择实例en: Select Instances- Parameters:- RateControl- OOSAssumeRoleLabel:default:zh-cn: 高级选项en: Control Options

其中Action: ACS::Redis::UpgradeRedisInstanceBandwidth内容如下:

FormatVersion: OOS-2019-06-01
Description:en: Upgrade of the temporary bandwidth of a Redis instancezh-cn: 升级Redis实例临时带宽name-en: ACS::Redis::UpgradeRedisInstanceBandwidthname-zh-cn: 升级Redis实例临时带宽
Parameters:RegionId:Type: StringLabel:en: RegionIdzh-cn: 地域IDAssociationProperty: RegionIdDefault: '{{ ACS::RegionId }}'InstanceId:Type: StringLabel:en: InstanceIdzh-cn: Redis实例IDBandwidth:Type: NumberLabel:en: Bandwidthzh-cn: 要增加的带宽Description:en: Unit:MB/s. The maximum incoming bandwidth is 6 times the default bandwidth of this instance specification, but the upper limit is 192MB/s. For example, the default bandwidth of an instance is 10 MB/s, and the value range of this parameter is 0~60.zh-cn: 单位:MB/s。最大可传入该实例规格默认带宽的 6 倍,但上限为 192MB/s。例如实例默认带宽为 10 MB/s,本参数的取值范围为 0~60。MinValue: 1MaxValue: 192DurationHour:Label:en: DurationHourzh-cn: 带宽升级持续时间Description:zh-cn: 单位:小时。持续时间最少1小时en: Unit:Hour. The bandwidth upgrade should last at least 1 hoursType: NumberMinValue: 1Default: 1
Tasks:- Name: UpgradeRedisInstanceBandwidthAction: ACS::ExecuteApiDescription:en: Upgrade redis instance bandwidthzh-cn: 升级Redis实例的带宽Properties:Service: r-kvstoreAPI: EnableAdditionalBandwidthParameters:RegionId: '{{ RegionId }}'InstanceId: '{{ InstanceId }}'Bandwidth: '{{ Bandwidth }}'AutoPay: true- Name: DurationHourAction: ACS::SleepDescription:en: Bandwidth upgrade durationzh-cn: 带宽升级持续时间Properties:Duration: '{{ DurationHour }}H'- Name: RecoverRedisInstanceBandwidthAction: ACS::ExecuteAPIDescription:en: Recover redis instance bandwidthzh-cn: 恢复redis实例的带宽Properties:Service: r-kvstoreAPI: EnableAdditionalBandwidthParameters:RegionId: '{{ RegionId }}'InstanceId: '{{ InstanceId }}'Bandwidth: 0AutoPay: true

http://www.ppmy.cn/devtools/54064.html

相关文章

【ThreeJS】Threejs +Vue3 开发基础

目前流行的前端3D框架以以Three.js、Babylon.js、A-Frame和ThingJS为例: 1.Three.js 功能: 提供了大量的3D功能,包括基本几何形状、材质、灯光、动画、特效等。 易用性: 功能强大且易于使用,抽象了复杂的底层细节&…

jnp.diag

jnp.diag 是 JAX 库中用于创建对角矩阵或提取对角线元素的函数。具体功能取决于输入的形状: 当输入是一维数组时,jnp.diag 创建一个以该数组为对角线元素的对角矩阵。当输入是二维数组时,jnp.diag 提取并返回对角线元素。 函数签名 jnp.di…

CSS打印设置页眉页脚

之前写过一篇文章CSS实现自动分页打印同时每页保留重复的自定义内容,可以实现window.print()打印时多张页面保留相同的内容(如header、footer),但其并不是真正意义上的页眉页脚,footer内容在最后一张页面未撑满时不能置…

C语言经典例题-19

1.字符串左旋结果 题目内容:写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串。 例:给定s1 AABCD和s2 BCDAA,返回1 给定s1 abcd和s2 ACBD,返回0 AABCD左旋一个字符得到ABCDA AABCD左旋两个字符得到BCDAA AABCD右旋一…

git的Cherry pick

Cherry pick Git Cherry Pick详解 https://blog.csdn.net/jam_yin/article/details/131594716 目标: 将开发分支A中提交的部分内容合并到B分支(可能是测试分支) 步骤: vscode安装 点击下图标进入graph

Ilya出走记:SSI的超级安全革命

图片|OpenAI官网 ©自象限原创 作者丨罗辑、程心 和OpenAI分道扬镳以后,Ilya“神秘而伟大”的事业终于揭开了面纱。 6月20日,前OpenAI核心创始人 Ilya Stuskever,在官宣离职一个月后,Ilya在社交媒体平台公开了…

回归预测 | Matlab实现NGO-HKELM北方苍鹰算法优化混合核极限学习机多变量回归预测

回归预测 | Matlab实现NGO-HKELM北方苍鹰算法优化混合核极限学习机多变量回归预测 目录 回归预测 | Matlab实现NGO-HKELM北方苍鹰算法优化混合核极限学习机多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现NGO-HKELM北方苍鹰算法优化混合核极限…

mysqladmin——MySQL Server管理程序(二)

mysqladmin 是一个命令行工具,用于执行简单的 MySQL 服务器管理任务,如检查服务器的状态、创建和删除数据库、重载权限等。 1 reload 重新加载授权表(grant tables)。当修改了MySQL的权限系统(例如,修改了…