首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Twemproxy Lag强制重新启动

Twemproxy Lag强制重新启动
EN

Stack Overflow用户
提问于 2017-02-02 05:15:54
回答 2查看 323关注 0票数 7

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

每隔一段时间,我就会收到我们的应用程序监视器发出的警告,页面加载时间超过5秒。当发生这种情况时,直接的解决方法是在每个应用服务器上重新启动twemproxy服务,这是一个麻烦。

我现在唯一的修复方法是每分钟运行一次crontab并重新启动服务,但正如您可以想象的那样,每分钟几秒钟都不会写入任何内容,这不是理想的、永久的解决方案。

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

这是我的twemproxy配置。

代码语言:javascript
复制
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层的连接配置:

代码语言:javascript
复制
# 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。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-16 01:55:04

我最终在本地主机上从unix套接字切换到tcp端口,似乎解决了重启问题。然而,由于与tcp相关的开销,我确实注意到在进行切换时响应时间增加了。不接受这个答案,希望以后会有人发布一个关于套接字的更权威的答案……

票数 0
EN

Stack Overflow用户

发布于 2017-02-10 21:19:01

打开/过时套接字连接的数量可能是问题所在

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41989898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档