우리는 twemproxy를 로컬로 (소켓을 통해) 사용하는 PHP 스택을 캐싱 레이어 용 다중 업스트림 memcached 서버 (EC2 소형 인스턴스)에 연결하기 위해 PHP 스택을 실행하고 있습니다.Twemproxy 지연으로 다시 시작하도록하십시오
종종 나는 앱로드 시간이> 5 초를 초과한다는 경고를 앱 모니터에서받습니다. 이 문제가 발생하면 즉각적인 해결책은 각 응용 프로그램 서버에서 twemproxy 서비스를 다시 시작하는 것인데, 이는 번거 로움입니다.
제가 지금 가지고있는 유일한 해결책은 매분마다 실행되는 서비스를 다시 시작하는 crontab입니다.하지만 매 순간 몇 분 동안 아무 것도 쓸 수 없다는 것을 상상할 수 있듯이, 이는 원하는 영구 솔루션이 아닙니다.
이전에이 문제가 발생 했습니까? 그렇다면 수정 프로그램은 무엇입니까? AWS Elasticache로 전환하려고 시도했지만 현재 twemproxy 솔루션과 동일한 성능을 얻지 못했습니다.
여기 내 twemproxy 구성입니다.
# 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를 실행중인 : 여기
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 층의 연결 설정입니다.감사합니다.
crontab을 설정하는 문제 –