मैसेज प्रोसेसर पर L1 कैश खत्म होने की तारीख सेट करना

Apigee Edge, अनुरोधों के हिसाब से डेटा को कैश मेमोरी में सेव करने की सुविधा देता है. एपीआई डेटा मिलने पर, उसे कुछ समय के लिए कैश मेमोरी में सेव करके रखा जाता है. इसके बाद, उसे मिटा दिया जाता है. किसी डेटा को मिटाने से पहले, उसे कितने समय तक रखा जाता है, उसे कैश मेमोरी की खत्म होने की तारीख या टाइम-टू-लाइव (टीटीएल) कहा जाता है. हर कैश का डिफ़ॉल्ट TTL (टीटीएल) होता है, लेकिन कुछ मामलों में एपीआई की परफ़ॉर्मेंस को बेहतर बनाने के लिए, आपको TTL (टीटीएल) वैल्यू बदलनी पड़ सकती है.

कैश मेमोरी के टाइप

एपीआई का डेटा दो तरह की कैश मेमोरी में सेव किया जाता है:

  • लेवल 1 (L1): इन-मेमोरी कैश मेमोरी, जिससे तेज़ी से ऐक्सेस किया जा सकता है, लेकिन स्टोरेज की क्षमता कम होती है.
  • लेवल 2 (L2): Cassandra के डेटा स्टोर में स्थायी कैश मेमोरी, जिसे ऐक्सेस करने में ज़्यादा समय लगता है. हालांकि, इस स्टोर के स्टोरेज की क्षमता ज़्यादा होती है.

जब L1 कैश मेमोरी में मौजूद कोई डेटा एंट्री L1 TTL तक पहुंच जाती है, तब उसे मिटा दिया जाता है. हालांकि, एंट्री की एक कॉपी L2 कैश में रखी जाती है (जिसमें L1 कैश से ज़्यादा लंबा TTL (टीटीएल) होता है) होता है. यहां अन्य मैसेज प्रोसेसर भी इसे ऐक्सेस कर सकते हैं. कैश मेमोरी के बारे में ज़्यादा जानने के लिए, इन-मेमोरी और हमेशा कैश मेमोरी के लेवल देखें.

मैक्सिमम L1 TTL

Edge for Private Cloud में, हर मैसेज प्रोसेसर के लिए, Max L1 TTL (टीटीएल) प्रॉपर्टी (conf_cache_max.l1.ttl.in.seconds) का इस्तेमाल करके, ज़्यादा से ज़्यादा L1 कैश मेमोरी TTL (टीटीएल) सेट किया जा सकता है. L1 कैश मेमोरी में मौजूद एंट्री, Max L1 TTL (टीटीएल) वैल्यू तक पहुंचने के बाद खत्म हो जाएगी और उसे मिटा दिया जाएगा.

Notes:

  • डिफ़ॉल्ट रूप से, Max L1 TTL (टीटीएल) बंद होता है (जिस पर वैल्यू -1 होती है). इस मामले में, L1 कैश में किसी एंट्री का TTL (टीटीएल), पॉप्युलेट कैश नीति की खत्म होने की सेटिंग से तय होता है (L1 और L2 दोनों के लिए).
  • ज़्यादा से ज़्यादा L1 TTL (टीटीएल) का असर सिर्फ़ तब होता है, जब इसकी वैल्यू कैश मेमोरी की कुल अवधि से कम होती है.

Max L1 TTL (टीटीएल) सेट करना

मैसेज प्रोसेसर पर Max L1 TTL (टीटीएल) को इस तरह सेट किया जा सकता है:

  1. किसी एडिटर में कॉन्फ़िगरेशन फ़ाइल /opt/apigee/customer/application/message-processor.properties खोलें. अगर फ़ाइल मौजूद नहीं है, तो उसे बनाएं.
  2. Max L1 TTL (टीटीएल) प्रॉपर्टी को अपनी पसंद की वैल्यू पर सेट करें:
    conf_cache_max.l1.ttl.in.seconds = 180

    हमारा सुझाव है कि वैल्यू को 180 सेकंड रखें.

  3. पक्का करें कि प्रॉपर्टी फ़ाइल का मालिकाना हक, "apigee" उपयोगकर्ता के पास हो:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  4. मैसेज प्रोसेसर को रीस्टार्ट करें:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

Max L1 TTL (टीटीएल) सेट करने के लिए दिशा-निर्देश

Max L1 TTL (टीटीएल) सेट करते समय, इन दिशा-निर्देशों को ध्यान में रखें:

  • RPC में गड़बड़ियां: अगर मैसेज प्रोसेसर (MP) के बीच रिमोट प्रोसेस कॉल (RPC) की गड़बड़ी सूचना मिलती है, खास तौर पर कई डेटा सेंटर पर, तो हो सकता है कि L1 कैश में पुरानी एंट्री हो. ये एंट्री तब तक पुरानी रहेंगी, जब तक इन्हें L1 कैश से मिटाया नहीं जाता. Max L1 TTL को कम वैल्यू पर सेट करने से, पुरानी एंट्री हट जाएंगी और L2 कैश मेमोरी की नई वैल्यू को जल्द ही बदल दिया जाएगा.
    समाधान: conf_cache_max.l1.ttl.in.seconds घटाएं.
  • casndra पर बहुत ज़्यादा लोड: जब Max L1 TTL के लिए कोई वैल्यू सेट की जाती है, तो L1 कैश एंट्री अक्सर खत्म हो जाती है. इससे, L1 कैश मेमोरी में ज़्यादा चीज़ें छूट जाती हैं और L2 कैश मेमोरी के ज़्यादा हिट मिलते हैं. L2 कैश मेमोरी ज़्यादा बार हिट होगी, कैसांद्रा पर ज़्यादा लोड पड़ेगा.
    समाधान: conf_cache_max.l1.ttl.in.seconds बढ़ाएं

सामान्य नियम के तौर पर, Max L1 TTL को उस वैल्यू पर ट्यून करें जो कैसेंद्रा पर संभावित लोड के साथ एमपी के बीच RPC चूकने की फ़्रीक्वेंसी को संतुलित करता है.

हमारा सुझाव है कि प्रोसेस को आसानी से जारी रखने के लिए, conf_cache_max.l1.ttl.in.seconds की वैल्यू को कम से कम 180 सेकंड (3 मिनट) पर सेट करें.