我使用redis(2.6.8)与php-fpm和phpredis驱动程序,并在重新启动延迟问题上有一些麻烦。在某些负载下,从我们的应用程序首先要求redis需要大约1-1.5秒,并且redis-cli – 显示相同的延迟。
>我们在与Unix套接字相同的主机上使用redis
> slowlog没有更长的条目5ms
>我们不使用AOF
> redis需要大约3.5Gb的16Gb内存(我想这不算太多)
>我们的系统不交换
>没有其他进程做磁盘I / O
我使用持久连接,连接的客户端的数量从5到25(有时是60-80)。
当有20个或更多的同时连接的客户端时,看起来问题开始。
你能帮我找出问题在哪里?
更新
我调查了这个问题,似乎redis没有足够的处理器时间由于某些原因正常运行。
在网络嗅探器的帮助下,我彻底检查了php-fpm和redis之间的通信。 Redis收到tcp的请求,但是在一秒钟之后才发回答案。它显然表明这个问题在redis里面,它在给定的条件下无法处理这么多的请求(可能是处理器的饥饿,因为整个系统的处理器只有50%的加载)。
通过将redis移动到几乎空闲的其他服务器来解决问题。我想我们应该用linux调度程序来使它在同一台服务器上工作,但还没有完成。