【问题标题】:Redis low latency with 1k requests per secondRedis 低延迟,每秒 1k 请求
【发布时间】:2014-12-04 14:20:17
【问题描述】:

我使用的是 2.8.17 redis 服务器。发送请求从 nginx+lua 抛出 unix.sock。 每个请求都是一个 SMEMBERS 命令。现在我每秒有大约 1k 个请求。 在 nginx 访问日志中,我主要看到的是下一个

[09/Oct/2014:18:04:49 +0300] [ 1412867089.670 : 0.002 : 190 ] 212.1.66.241 - - "POST /API/0.1/url/getCategory/ HTTP/1.1" 200 29 
[09/Oct/2014:18:04:49 +0300] [ 1412867089.670 : 0.002 : 190 ] 212.1.66.241 - - "POST /API/0.1/url/getCategory/ HTTP/1.1" 200 29 
[09/Oct/2014:18:04:49 +0300] [ 1412867089.670 : 0.002 : 190 ] 212.1.66.241 - - "POST /API/0.1/url/getCategory/ HTTP/1.1" 200 29 
[09/Oct/2014:18:04:49 +0300] [ 1412867089.670 : 0.002 : 190 ] 212.1.66.241 - - "POST /API/0.1/url/getCategory/ HTTP/1.1" 200 29 
[09/Oct/2014:18:04:49 +0300] [ 1412867089.671 : 0.001 : 190 ] 212.1.66.241 - - "POST /API/0.1/url/getCategory/ HTTP/1.1" 200 29 
[09/Oct/2014:18:04:49 +0300] [ 1412867089.672 : 0.000 : 190 ] 212.1.66.241 - - "POST /API/0.1/url/getCategory/ HTTP/1.1" 200 29 
[09/Oct/2014:18:04:49 +0300] [ 1412867089.673 : 0.001 : 190 ] 212.1.66.241 - - "POST /API/0.1/url/getCategory/ HTTP/1.1" 200 29 
[09/Oct/2014:18:04:49 +0300] [ 1412867089.673 : 0.001 : 190 ] 212.1.66.241 - - "POST /API/0.1/url/getCategory/ HTTP/1.1" 200 29 
[09/Oct/2014:18:04:49 +0300] [ 1412867089.674 : 0.000 : 198 ] 212.1.66.241 - - "POST     /API/0.1/url/getCategory/ HTTP/1.1" 200 37 
[09/Oct/2014:18:04:49 +0300] [ 1412867089.681 : 0.000 : 190 ] 212.1.66.241 - - "POST /API/0.1/url/getCategory/ HTTP/1.1" 200 29 
[09/Oct/2014:18:04:49 +0300] [ 1412867089.681 : 0.000 : 190 ] 212.1.66.241 - - "POST /API/0.1/url/getCategory/ HTTP/1.1" 200 29 

可以看到请求时间不超过2ms。 但几乎每一秒我都会收到一些请求,请求时间约为 100 毫秒

[09/Oct/2014:18:05:22 +0300] [ 1412867122.843 : 0.131 : 190 ] 212.1.66.241 - - "POST /API/0.1/url/getCategory/ HTTP/1.1" 200 29 
[09/Oct/2014:18:05:23 +0300] [ 1412867123.212 : 0.100 : 190 ] 212.1.66.241 - - "POST /API/0.1/url/getCategory/ HTTP/1.1" 200 29 
[09/Oct/2014:18:05:23 +0300] [ 1412867123.613 : 0.101 : 190 ] 212.1.66.241 - - "POST /API/0.1/url/getCategory/ HTTP/1.1" 200 29

我找不到问题所在。

我检查了the latency guide的所有内容

Slowlog 不再有条目 5ms

系统没有交换

我不使用 AOF

【问题讨论】:

    标签: nginx lua redis low-latency


    【解决方案1】:

    如果这确实是您记录的请求时间,请注意它包括将最后一个字节传递给客户端的时间。因此,您的问题可能是客户端连接。由于您似乎是在一个位置进行测试,因此请尝试添加更多测试节点并调试外部网络。

    【讨论】:

    • 如果我在下一行评论local categories, err = red:smembers("categories:"..clear_url) 我没有这个问题。我想这可能是 unix.sock 的问题,但我读了很多,但尚未得到证实。如果我理解正确 set_keepalive 不适用于通过 unix.sock 的连接
    • 如果你怀疑 unix socket,那么切换到 TCP。您的基本请求时间会增加,但这是您要解释的变化。
    • 刚刚想到的是数据大小。您可以找到与 Redis 响应相关的任何关系。
    • 我在数据库中有 100 万条记录。比我做出 FLUSHALL 但结果相同。
    • redis-benchmark 说我每秒可以运行几万个请求
    猜你喜欢
    • 1970-01-01
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-14
    • 2011-03-07
    相关资源
    最近更新 更多