gpt4 book ai didi

c - Hiredis 大量并发请求超时

转载 作者:IT王子 更新时间:2023-10-29 05:57:31 25 4
gpt4 key购买 nike

我正在为 Varnish 使用一个名为 libvmod-redis 的 redis 集成插件.我遇到一个问题,如果我收到大量并发请求(大约 350 个),redis 就会开始超时,最终我会在 Varnish 中遇到段错误。

我收到这些错误:

varnishd[27892]: Child (27893) said redis error (connect): Connection timed out
varnishd[27892]: Child (27893) said redis error (command): err=1 errstr=Connection timed out
varnishd[19528]: Child (19529) said redis error (command): err=1 errstr=select(2): Invalid argument
varnishd[19528]: Child (19529) said redis error (command): err=1 errstr=Connection timed out
varnishd[19528]: last message repeated 9 times
varnishd[19528]: Child (19529) said redis error (command): err=1 errstr=select(2): Invalid argument
varnishd[19528]: Child (19529) said redis error (connect): fcntl(F_GETFL): Bad file descriptor
varnishd[19528]: Child (19529) said redis error (command): err=1 errstr=fcntl(F_GETFL): Bad file descriptor
kernel: [282284.005658] varnishd[19727] general protection ip:7f1f9dea1427 sp:7f1f4123c120 error:0 in libhiredis.so.0.10[7f1f9de9f000+9000]

我的超时时间是 1 秒,我正在为 Redis 使用 ElastiCache 节点。我想知道这里到底是什么地方失败了。我不是 C 语言的专家,所以我觉得我缺少了一些东西。

最佳答案

看到代码会很有趣,尤其是围绕 select 的代码。因为你有很多并发请求,你最好检查你的文件描述符的有效性:也许其中一个在这个过程中被关闭了......

关于c - Hiredis 大量并发请求超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22470422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com