Redis请求延迟

S3R*_*3RK 18 php redis

我正在使用带有php-fpm和phpredis驱动程序的redis(2.6.8),并且在redis延迟问题上遇到了一些麻烦.在某些负载下,从我们的应用程序首次请求redis需要大约1-1.5秒并redis-cli --latency显示相同的延迟.

我已经检查了延迟指南.

  • 我们在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调度程序使它在同一台服务器上运行,但尚未完成.

小智 0

我在研究我正在研究的问题时遇到了这个问题,但认为它可能会有所帮助:

https://groups.google.com/forum/#!topic/redis-db/uZaXHZUl0NA

如果您通读该线程,会发现一些有趣的信息。