Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
本文介绍如何使用和监视 Azure 托管 Redis 缓存的负载。
值大小
客户端应用程序的设计决定了是要存储大量的较小值,还是存储少量的较大值。 从 Redis 服务器的角度来看,值越小,性能就越好。 建议将值大小保留在 100 kB 以下。
如果设计要求在 Azure 托管 Redis 中存储更大的值,则服务器负载会更高。 在这种情况下,可能需要使用更高的缓存层来确保 CPU 使用率不会限制吞吐量。
即使缓存具有足够的 CPU 容量,较大的值也会增大延迟,因此请遵循配置适当的超时中的指导。
避免出现客户端连接高峰
创建和关闭连接对于 Redis 服务器而言是一项高开销的操作。 如果客户端应用程序在短时间内创建或关闭过多的连接,可能会给 Redis 服务器造成负担。
如果您要同时实例化许多客户端实例以连接到 Redis,请考虑错开新连接的创建时间,以避免连接客户端数量急剧增长。
内存压力
如果服务器上的内存使用率过高,则系统会更可能需要将数据分页到磁盘,导致页面错误,使系统运行速度明显变慢。
避免长时间运行的命令
Redis 服务器是单线程系统。 长时间运行的命令可能导致客户端出现延迟或超时,因为服务器在忙于处理长时间运行的命令时无法响应任何其他请求。 有关详细信息,请参阅排查 Azure Cache for Redis 服务器端问题。
监控服务器的负载和 CPU 负载
在服务器负载量和 CPU 上添加监控,以确保当两者之一出现高负载时收到通知。 监视可帮助你了解应用程序约束。 然后,可以主动采取措施来缓解问题。 建议尝试使服务器负载保持在 80% 以下,以避免对性能造成负面影响。 服务器负载持续超过 80% 可能会导致计划外故障转移。 目前,Azure 托管 Redis 在门户左侧“资源”菜单的“监视”下的“见解”中公开了两个指标:“CPU”和“服务器负载”。 在监控指标时,了解每个指标度量的内容非常重要。
CPU (a.k.a. percentProcessorTime)指标指示承载缓存的节点的 CPU 使用率。 CPU 指标还包括严格来说不是 Redis 服务器进程的进程。 CPU 包括反恶意软件和其他软件的后台进程。 因此,CPU 指标有时会出现峰值,并且可能不是 Redis 服务器的 CPU 使用率的完美指标。
服务器负载指标反映了 Redis 服务器自己对总体负载的评估,并且类似于 CPU 指标,但在群集级别。
针对较小的 SKU 的建议
在 2-vCPU VM(B0-B5、X3 和 M10)支持的 Azure 托管 Redis SKU 上,基于百分比的指标(如 服务器负载 和 CPU )本质上更为敏感。 单个短时间运行的后台线程可能会占用显著的 CPU 总使用百分比,即使实际工作负荷较轻,指标仍然显示升高。 因此,这些指标可以高估小型 SKU 上的实际负载,并且可能不会指示工作负荷饱和度。
查看较长时间段(例如几个小时或几天)的指标时,建议:
- 使用 CPU 而不是 服务器负载,因为它可以在实例级别进行查看,从而增强颗粒度分析。
- 按支持 Azure 托管 Redis 实例的虚拟机的实例 ID 拆分
- 对于这些较长的时间范围,使用平均聚合而不是最大值
你仍然可以在短时间内使用 最大 聚合来捕获短暂的峰值或事件(例如可能导致超时或故障转移的事件),同时依赖于较长时段的 平均值 来分析小型 SKU,尤其是在使用 CPU 时。
测试服务器负载在故障转移后是否增加
对于标准和高级 SKU,每个缓存都托管在两个节点上。 负载均衡器会将客户端连接分布到这两个节点。 在主节点上发生计划内或计划外的维护时,该节点会关闭所有客户端连接。 在这种情况下,所有的客户端连接可能都会位于某一个节点上,导致服务器负载在剩余的一个节点上增加。 建议对此场景进行测试,方法是:重启主节点,并确保一个节点可以处理所有客户端连接,而服务器负载不会增至过高。