Redis缓存 - "服务器关闭了连接"错误

3
我正在运行一些测试,以了解MaxMemory-Reserved和MaxMemory-Policy,当Redis DB几乎满时,我们遇到了“服务器关闭连接”错误。以下是详细信息:
1)使用标准C1(1 GB)层创建Redis缓存,并选择“allkeys-lru”和最大内存保留为50 MB。
2)运行Redis基准测试工具将键添加到Redis DB中,以确保Redis DB几乎满了。
3)当DB达到约960-980 MB左右时,再次运行基准测试工具以添加更多键,并获得以下错误。在哪些情况下会出现此错误?enter image description here 注意:我们在遇到此错误之前刚运行info命令,并且Connected_Clients值为0。

4) 同时在Azure Portal Console上运行info命令,输出结果为“错误”。 5) 这个错误持续了大约2-3分钟,之后我们能够添加密钥。当我们再次运行info命令时,得到以下状态。在这里,我们看到used_memory和used_memory_rss之间的差异约为76 MB。您认为以上错误可能是由于此原因引起的吗?

信息

服务器redis_version:3.2.3

redis_mode:独立

操作系统:Windows

arch_bits:64

multiplexing_api:winsock_IOCP

hz:10

客户端

connected_clients:2

client_longest_output_list:0

client_biggest_input_buf:0

client_total_writes_outstanding:0

client_total_sent_bytes_outstanding:0

blocked_clients:0

内存

used_memory:968991592

used_memory_human:924.10M

使用的内存峰值:1049776128

used_memory_rss_human:1001.14M

使用的峰值内存:1070912296

used_memory_peak_human:1021.30M

used_memory_lua:37888

maxmemory:1100000000

maxmemory_human:1.02G

最大内存策略:所有键-最近最少使用

内存分配器:jemalloc-3.6.0 #


你查看过关于内存压力问题的文档了吗? - Bruce Chen
1个回答

3
您很可能遇到了高未认证连接的情况。Redis-benchmark首先创建所有客户端连接(在您的情况下是- c 400个连接),然后对其进行身份验证。身份验证的延迟导致来自单个IP的大量未经身份验证的连接,因此Azure Redis Cache会关闭它们以进行DOS保护。因此,会出现错误“服务器关闭了连接”。 您可以尝试从此处下载我修改过的redis-benchmark,它会在建立连接后立即进行身份验证,并解决此问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接