排查 Azure Cache for Redis 客户端问题
此部分讨论由于应用程序使用的 Redis 客户端上出现状况而导致的故障排除问题。
Redis 客户端上的内存压力
客户端上的内存压力会导致各种性能问题,这些问题可能会延迟对缓存所发出的响应的处理。 出现内存压力时,系统可能会将数据分页到磁盘。 此分页错误 导致系统性能显著下降。
检测客户端上的内存压力:
- 监视计算机上的内存用量,确保所用内存未超过可用内存。
- 监视客户端的
Page Faults/Sec
性能计数器。 在正常运行期间,大多数系统会出现某些页面错误。 如果页面错误中存在与请求超时相关的峰值,可能表示出现了内存压力。
可通过多种方式缓解客户端上较高的内存压力:
- 深入分析内存使用模式,并减少客户端上的内存消耗量。
- 将客户端 VM 升级到可提供更多内存的更大大小。
流量突增
本部分已移到其他位置。 有关详细信息,请参阅流量突增和线程池配置。
客户端 CPU 使用率过高
本部分已移到其他位置。 有关详细信息,请参阅客户端主机上的高 CPU 使用率。
客户端带宽限制
本部分已移到其他位置。 有关详细信息,请参阅客户端主机上的网络带宽限制。
最大客户端连接数
若客户端连接数达到缓存的最大值,客户端请求超过最大值的连接可能会失败。 处理重复的重新连接尝试时,客户端连接数过多还可能导致服务器负载过高。
客户端连接数过多可能表示客户端代码中存在连接泄漏。 连接可能没有被重用或正确关闭。 查看用于连接的客户端代码。
如果过多的客户端连接都是合法且必需的,则可能需要升级缓存大小,提高其连接上限。 检查 Max aggregate for Connected Clients
指标是否接近或高于特定缓存大小允许的最大连接数。 有关调整每个客户端连接大小的信息,请参阅 Azure Cache for Redis 性能。
其他信息
以下文章提供有关故障排除和性能测试的更多信息: