本页面简要介绍了 Memorystore for Memcached 的维护。
如需了解如何安排维护窗口,请参阅查找和设置维护窗口。
概览
Memorystore for Memcached 会定期更新实例,以确保服务可靠、高效、安全且最新。大多数更新都是在 Memcached 实例正常运行期间执行的。但是,某些系统更新需要短暂中断服务。这些更新称为“维护” 。维护通常分为以下几类:
Memorystore 功能。如需启动某些功能,Memorystore 需要进行维护更新。
操作系统补丁程序。我们会持续监控操作系统中新发现的安全漏洞。发现漏洞后,我们会修补操作系统,以保护您免受新风险的影响。
数据库版本升级。维护可以包括 OSS Memcached 补丁程序次要版本更新,其中不包含重大更改或不兼容更改。
用户可以通过两种方式执行维护:自动或手动。借助 维护窗口 功能,用户可以指定一个重复的时间范围,以便 自动安排和执行维护。对于希望更精细地控制 实例维护的用户,手动维护 提供了一个 gcloud 接口,用于根据您所需的 安排和逻辑更新实例。
维护的影响
在维护期间,Memorystore for Memcached 集群会断开连接并完全清空缓存。
在整个维护窗口期间,集群中的节点会按顺序均匀更新。更新节点时,缓存会被清空,并且数据在维护后不会恢复。停机时间通常为每个节点 5 分钟左右。
当节点进行维护时,该节点的连接会断开并重置。您应创建一个包含 指数退避算法 的重试机制, 以便在维护发生后将应用重新连接到节点。
对于选择手动维护的用户, 您可以控制集群各个节点的更新时间。
维护设置
Memorystore 允许您将维护配置为在对应用最有利的时间进行。为此,您可以配置维护窗口。
维护窗口是按 Memorystore 实例设置的,并允许以下配置选项:
- 星期几。指定进行维护的日期。
- 起始小时。维护开始的小时。
- 时长。维护窗口的时长,范围为 3 小时到 8 小时。
如果为实例配置了维护窗口,则系统会安排未来的自动维护,以遵循这些偏好设置。如果未为实例指定维护窗口,则维护可能会随时开始,而无需提前通知。
维护示例
假设您是管理购物车服务的零售商的开发者。您有一个用于生产环境的 Memorystore for Memcached 实例。您希望在实例处理最低流量时(大约在星期日零点)进行维护。
在这种情况下,您需要将生产实例的维护窗口设置为:
- 星期几。星期日。
- 起始小时。凌晨 1 点。
- 时长。3 小时。
在这种情况下,我们选择了允许的最短时长,以确保维护在此低流量期间进行。对于流量稳定的应用(全天候 24 小时),最好指定较长的时长,因为这样可以更均匀地分散缓存清空的影响。对于对任何服务影响都 特别敏感的应用,我们建议手动执行 维护。
即将进行的维护通知
在安排维护之前,您可以至少提前一周向您的电子邮件地址发送有关即将进行维护的通知。如果您要为通知设置电子邮件
过滤条件,则电子邮件标题为"Upcoming maintenance for your
Cloud Memorystore instance [your-instance-name]"。
默认情况下,系统不会发送维护通知。如果您希望接收有关即将进行的维护的通知,则必须执行以下两项操作:
通知会发送到与您的 Google 账号关联的电子邮件地址。 您不能配置自定义邮箱别名(例如团队邮箱别名),也不能订阅您自己的电子邮件地址以外的其他电子邮件地址。
订阅时,您可以为给定项目中具有维护窗口的所有 Memorystore 实例选择接收维护通知。对于每个实例,您都会收到一份通知。
如需了解如何查找计划维护,请参阅查找计划维护。
重新安排维护
如果您的实例具有维护窗口,则您可以在当前安排维护之前随时重新安排维护。例如,如果您在当前安排的维护期间启动了新服务,则可能需要在启动几天后重新安排维护窗口。
只要是在原定安排的时间后一周内,您就可以多次重新安排维护。对于新的维护窗口,您可以作出一些安排选择:
立即更新。您可以立即将更新应用到实例,而不是等到安排的维护窗口。
推迟到下一个计划的窗口。这会将维护推迟一周。
自定义日期和时间。这样,您可以选择在原定安排的维护时间后的一周内的任意特定时间 。
重新安排维护还具有以下行为:
如果当前时间距离目前安排的维护不到一个小时,则无法重新安排维护。
您无法通过一次操作为多个 Memcached 实例重新安排维护。您必须单独为每个实例重新安排维护。
如需了解如何重新安排维护,请参阅重新安排计划内维护。
最佳做法
- 为所有生产实例设置维护窗口并订阅通知。
- 选择合适的时长。在您指定的整个时长内,节点会按顺序更新。选择较长的时长会将节点缓存清空分散到较长的时间段内,从而减少对应用的影响。但是,较短的时长可以更快地完成更新,这对于具有众所周知的低流量时段的应用或对任何级别的缓存中断都敏感的应用来说可能更理想。
- 采取措施,使系统内存利用率 指标在计划维护时达到 50% 或更低。为此,您可以安排实例流量较低的时间,或在维护窗口内临时增加实例大小,以使系统内存利用率指标达到 50% 或更低。
- 实现包含指数退避算法 的重试机制,以便在维护后将应用重新连接到实例。
- 在更新可用后,利用重新安排功能在非生产实例上测试更新
手动维护
虽然我们预计通过维护窗口进行的自动维护可以满足大多数 Memorystore 用户的要求,但手动维护提供了一个 gcloud 接口,用于更新实例。通过使用此接口,您可以按照对应用最有意义的速率和时间单独更新集群节点。由于每个节点都是通过调用 gcloud 接口进行更新的,因此每个节点缓存都会被清空,并且连接会断开,这与 自动维护类似。
如需执行手动维护,您必须先为实例设置维护窗口并订阅维护通知。更新可用后,您会收到一封电子邮件通知,其中包含实例的计划维护时间。此时,您可以开始手动将更新应用于实例。 如果 Memorystore for Memcached 集群在计划维护时间之前未完全更新,则所有剩余的集群节点会在维护窗口期间自动更新。如果您在计划维护时间之前已完全更新实例,则在定义的维护窗口期间,实例不会受到任何影响。
常见问题解答
以下是关于 Memorystore for Memcached 维护政策的一些常见问题:
维护对 Memcached 实例有何影响?
在维护期间,集群中的节点会在维护窗口期间按顺序更新。每个节点都会清空缓存,停机时间约为每个节点 5 分钟。如需详细了解影响,请参阅 维护的影响。
维护更新的时长是多少?
窗口时长可由用户配置,范围为 3 到 8 小时。节点更新会均匀分布在指定时长内。
如何知道实例的计划维护时间?
我们建议您订阅通知以了解何时为您的实例安排维护。您也可以在 Cloud 控制台 中手动检查。如果 Cloud 控制台 为空并且您已设置维护窗口,则表示您尚未安排即将进行的维护。
我何时会收到即将进行的维护的通知?
如果您订阅了维护通知并设置了维护期,则至少会在维护事件发生前七天收到电子邮件提醒。
我可以将维护推迟多长时间?
为实例安排维护之后,您可以立即开始更新实例,也可以将更新从最初安排的维护时间开始推迟最多七天。例如,如果将维护安排在 10 月 11 日晚上 11 点 15 分,则可以推迟到 10 月 18 日晚上 11 点 15 分。如果您不执行任何操作,维护将在所安排的时间进行。
如需了解详情,请参阅重新安排计划内维护。
实例的 IP 地址在维护期间是否会发生变化?
不会。Memcached 实例的 IP 地址不会发生变化。
设置或调整维护窗口是否会影响我的实例?
不会。设置或调整维护窗口不会导致实例停机。此外,它也不会更改实例的 IP 地址,或对实例造成任何其他更改。
我应该遵循哪些最佳实践来获得流畅的维护更新体验?
我们建议您遵循最佳实践部分 中有关维护更新的指南。
我何时应该立即进行维护?
您应立即在测试实例上进行维护的一个情况是了解它对生产实例的影响。您可以 重新安排计划内维护 以立即将其应用于测试实例。这样,您就可以观察维护所产生的影响,并根据需要/在条件允许时推迟生产实例上的维护操作。
维护更新是否始终在维护窗口内完成?
更新会在您指定的维护窗口内开始。更新几乎总是在窗口期内完成。
我可以先停止对某些实例进行维护或安排维护吗?
不可以,您不能选择停用维护,也无法控制初始的维护时间安排。不过,您可以重新安排维护 ,使其最多推迟七天。
更新是否可以在维护窗口之外应用?
在极少数情况下,为了防止时间敏感的漏洞,维护可以应用于指定维护窗口之外的 Memcached 实例。
如果 Memorystore 取消维护,会发生什么情况?
如果 Memorystore 取消维护事件,您会收到有关维护已被取消的通知。在极少数情况下,Memorystore 可能无法提前发送取消通知。在这种情况下,系统会在安排的维护窗口过后通知您没有进行维护。
然后,系统会根据您选择的偏好设置将维护重新安排到未来的维护窗口。维护事件重新安排后,您会收到有关即将进行维护的新通知。
维护窗口使用什么时间格式?
使用 Google Cloud 控制台时,维护窗口按当地时区显示和 设置,但以世界协调时间 (UTC) 存储。 Google Cloud 控制台 还会显示相对于世界协调时间 (UTC) 的维护窗口时间。使用 Google Cloud CLI 设置窗口时,请使用世界协调时间 (UTC) 设置时间。
您应根据世界协调时间 (UTC) 安排窗口,因为 Google Cloud 控制台 会显示查看器的本地时区。如果用户在不同的时区设置窗口,这可能会导致混淆。
维护窗口不会更改夏令时。
后续步骤
- 查看管理 Memcached 实例维护窗口所需的权限 。