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