管理 Azure Cache for Redis 的服务器负载

值大小

客户端应用程序的设计决定了是要存储大量的较小值,还是存储少量的较大值。 从 Redis 服务器的角度来看,值越小,性能就越好。 建议将值大小保留在 100 kB 以下。

如果你的设计要求在 Azure Cache for Redis 中存储更大的值,则服务器负载会变得更高。 在这种情况下,可能需要使用更高的缓存层来确保 CPU 使用率不会限制吞吐量。

即使缓存具有足够的 CPU 容量,较大的值也会增大延迟,因此请遵循配置适当的超时中的指导。

较大值还会增大出现内存碎片的可能性,因此请务必遵循配置maxmemory-reserved 设置中的指导。

避免出现客户端连接高峰

创建和关闭连接对于 Redis 服务器而言是一项高开销的操作。 如果客户端应用程序在短时间内创建或关闭过多的连接,可能会给 Redis 服务器造成负担。

如果你要实例化许多客户端实例以便立即连接到 Redis,请考虑错开创建新连接的操作,以避免连接的客户端数出现徒峰。

内存压力

如果服务器上的内存使用率过高,则系统会更可能需要将数据分页到磁盘,导致页面错误,使系统运行速度明显变慢。

避免长时间运行的命令

Redis 服务器是单线程系统。 长时间运行的命令可能导致客户端出现延迟或超时,因为服务器在忙于处理长时间运行的命令时无法响应任何其他请求。 有关详细信息,请参阅排查 Azure Cache for Redis 服务器端问题

监视服务器负载

添加对服务器负载的监视,以确保在服务器负载过高时收到通知。 监视可帮助你了解应用程序约束。 然后,可以主动采取措施来缓解问题。 建议尝试使服务器负载保持在 80% 以下,以避免对性能造成负面影响。

目前,Azure Cache For Redis 在门户左侧“资源”菜单的“监视”下的“见解”中公开了两个指标:“CPU”和“Server Load”。 在监视服务器负载时,了解每个指标衡量的内容很重要。

CPU 指标指示托管缓存的节点的 CPU 使用率。 CPU 指标还包括严格来说不是 Redis 服务器进程的进程。 CPU 包括反恶意软件和其他软件的后台进程。 因此,CPU 指标有时会出现峰值,并且可能不是 Redis 服务器的 CPU 使用率的完美指标。

“Server Load”指标仅代表 Redis 服务器上的负载。 我们建议监视“Server Load”指标而不是“CPU”。

规划服务器维护

确保在缓存服务器接受维护时,你有足够的服务器容量用于处理高峰负载。 在承受高峰负载的情况下,通过重新启动节点来测试系统。 有关如何模拟补丁部署的详细信息,请参阅重新启动

测试服务器负载在故障转移后是否增加

对于标准和高级 SKU,每个缓存都托管在两个节点上。 负载均衡器会将客户端连接分布到这两个节点。 在主节点上发生计划内或计划外的维护时,该节点会关闭所有客户端连接。 在这种情况下,所有的客户端连接可能都会位于某一个节点上,导致服务器负载在剩余的一个节点上增加。 建议对此场景进行测试,方法是:重启主节点,并确保一个节点可以处理所有客户端连接,而服务器负载不会增至过高。

后续步骤