हम अपने ऐप सर्वर पर एक PHP स्टैक चला रहे हैं जो हमारे कैशिंग परत के लिए एकाधिक अपस्ट्रीम memcached सर्वर (EC2 छोटे उदाहरण) से कनेक्ट करने के लिए स्थानीय रूप से (सॉकेट के माध्यम से) twemproxy का उपयोग करते हैं।Twemproxy Lag एक पुनरारंभ
हर बार मुझे अपने ऐप मॉनिटर से एक चेतावनी मिलती है कि एक पेज लोड समय> 5 सेकंड लेता है। जब ऐसा होता है, तो तत्काल फिक्स प्रत्येक ऐप सर्वर पर twemproxy सेवा को पुनरारंभ करना है, जो एक परेशानी है।
एकमात्र फिक्स मेरे पास अब एक क्रॉन्टाब है जो हर मिनट चलता है और सेवा को पुनरारंभ करता है, लेकिन जैसा कि आप कल्पना कर सकते हैं कि हर मिनट कुछ सेकंड के लिए कुछ भी नहीं लिखा जाता है, जो वांछित, स्थायी समाधान नहीं है।
क्या किसी ने इससे पहले सामना किया है? यदि हां, तो फिक्स क्या था? मैंने एडब्ल्यूएस लोचदार दर्द पर स्विच करने की कोशिश की लेकिन हमारे वर्तमान 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 परत के लिए कनेक्शन config है।
धन्यवाद।
यह crontab –