【问题标题】:Twemproxy Lag Forces a RestartTwemproxy Lag 强制重启
【发布时间】:2017-06-18 19:08:08
【问题描述】:

我们正在我们的应用服务器上运行一个 PHP 堆栈,它在本地使用 twemproxy(通过套接字),以连接到多个上游 memcached 服务器(EC2 小型实例)以用于我们的缓存层。

每隔一段时间,我就会从我们的应用程序监视器中收到一条警报,提示页面加载时间需要 > 5 秒。出现这种情况,直接解决方法是在每个应用服务器上重启 twemproxy 服务,比较麻烦。

我现在唯一的解决办法是每分钟运行一次并重新启动服务的 crontab,但正如您可以想象的那样,每分钟几秒钟内什么都没有写入,这不是一个理想的永久解决方案。

有没有人遇到过这种情况?如果是这样,解决方法是什么?我尝试切换到 AWS Elasticache,但它的性能不如我们当前的 twemproxy 解决方案。

这是我的 twemproxy 配置。

default:
  auto_eject_hosts: true
  distribution: ketama
  hash: fnv1a_64
  listen: /var/run/nutcracker/nutcracker.sock 0666
  server_failure_limit: 1
  server_retry_timeout: 600000 # 600sec, 10m
  timeout: 100
  servers:

    - vcache-1:11211:1
    - vcache-2:11211:1

这里是php层的连接配置:

# Note: We are using HA / twemproxy (nutcracker) / memcached proxy
# So this isn't a default memcache(d) port
# Each webapp will host the cache proxy, which allows us to connect via socket
#   which should be faster, as no tcp overhead
# Hash has been manually override from default jenkins to FNV1A_64, which directly aligns with proxy
port: 0
<?php echo Hobis_Api_Cache::TYPE_VOLATILE; ?>:
  options:
    - <?php echo Memcached::OPT_HASH; ?>: <?php echo Memcached::HASH_FNV1A_64; ?><?php echo PHP_EOL; ?>
    - <?php echo Memcached::OPT_SERIALIZER; ?>: <?php echo Memcached::SERIALIZER_IGBINARY; ?><?php echo PHP_EOL; ?>
  servers:
    - /var/run/nutcracker/nutcracker.sock

我们正在运行 0.4.1 twemproxy 和 1.4.25 memcached。

谢谢。

【问题讨论】:

  • 是设置crontab的问题

标签: php caching memcached twemproxy


【解决方案1】:

打开/陈旧的套接字连接数可能是问题

【讨论】:

  • 嗯,他们可能正在堆叠,我会调查一下。
  • 所以他不应该试图帮助OP?他有一些可能会指导 OP 寻求解决方案的东西,但你宁愿让他闭嘴吗?我发誓 Stack Overflow 上到处都是自恋的人,他们只想毁掉别人的体验…… OP 很高兴收到这条评论,而 Kiran 尽其所能发表自己的意见,因为 Stack 不会让他评论……所以请乔恩...离开,让人们去吧。这是一个我们帮助人们的网站。 Kiran 的帖子很有帮助。你的一切都是有用的。支持你基兰。不知道这是否能解决他的问题,但你试图帮助——而不是其他人——
【解决方案2】:

我最终在 localhost 上从 unix socket 切换到 tcp 端口,它似乎已经解决了重启问题。但是,由于与 tcp 相关的开销,我确实注意到进行切换的响应时间有所增加。不接受这个答案,希望有人在路上发布关于套接字的更权威的答案......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-19
    • 2011-11-07
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    • 2013-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多