Postgres सर्वर के डिस्क में जगह खत्म हो रही है

यह Apigee Edge का दस्तावेज़ है.
Go to the Apigee X documentation.
info

समस्या का ब्यौरा

Postgres सर्वर में Analytics का डेटा सेव है. इस सर्वर में डिस्क स्पेस खत्म हो गया है.

यहां दिए गए उदाहरण में, देखा जा सकता है कि डिस्क /u01 में 90% (176 जीबी/207 जीबी) डेटा सेव है.

$df -g

Filesystem Size User Avail Use% Mounted on
/dev/mapper/sysvg-syslv09 207G 176G 176G 21G 90% /u01

गड़बड़ी के मैसेज

Postgres सर्वर में डिस्क स्पेस पूरी तरह भर जाने तक, आपको कोई गड़बड़ी का मैसेज नहीं दिखेगा.

संभावित कारण

यहां दी गई टेबल में, इस समस्या की संभावित वजहें बताई गई हैं:

वजह इसके लिए:
डिस्क में ज़रूरत के मुताबिक स्टोरेज नहीं है Edge Private Cloud के उपयोगकर्ता
Analytics डेटा को समय-समय पर मिटाया नहीं गया Edge Private Cloud के उपयोगकर्ता

डिस्क में ज़रूरत के मुताबिक स्टोरेज नहीं है

संक्रमण की जांच

Postgres सर्वर पर डिस्क स्पेस से जुड़ी गड़बड़ियां आने की एक आम वजह यह है कि आपके पास Analytics का ज़्यादा डेटा सेव करने के लिए, डिस्क में ज़रूरत के मुताबिक स्टोरेज नहीं है. यहां दिया गया तरीका अपनाकर, यह पता लगाया जा सकता है कि आपके पास डिस्क में ज़रूरत के मुताबिक स्टोरेज है या नहीं. साथ ही, समस्या को हल करने के लिए सही कार्रवाई की जा सकती है.

  1. Analytics प्रॉक्सी परफ़ॉर्मेंस डैशबोर्ड देखकर, Edge पर आने वाले एपीआई ट्रैफ़िक की दर का पता लगाएं.

    प्रॉक्सी की परफ़ॉर्मेंस का सैंपल, जिसमें औसत टीपीएस दिखाया गया है

  2. यहां दिया गया उदाहरण देखें:
    1. आपके संगठन के लिए, आने वाला एपीआई ट्रैफ़िक 22 टीपीएस (ट्रांज़ैक्शन पर सेकंड) है.
      1. इसका मतलब है कि एपीआई ट्रैफ़िक, हर दिन 19,00,800 ट्रांज़ैक्शन (22 * 60 * 60 * 24) है.
      2. ध्यान दें कि Analytics में हर ट्रांज़ैक्शन/मैसेज का साइज़ 1.5 केबी होता है.
      3. इसलिए, हर दिन Analytics का 2.7 जीबी डेटा जनरेट होता है (19,00,800 * 1.5 केबी).
    2. आपको रेफ़रंस के लिए, अपने Postgres सर्वर पर 30 दिनों का Analytics डेटा सेव करके रखना है.
      1. 30 दिनों के लिए जनरेट किया गया कुल डेटा = 81 जीबी (2.7 जीबी * 30)
    3. इसलिए, 22 टीपीएस की ट्रैफ़िक दर पर 30 दिनों का Analytics डेटा सेव करने के लिए, आपके पास 150 जीबी का डिस्क स्पेस होना चाहिए.
      1. 81 जीबी (Analytics डेटा) + 50 जीबी (अन्य डेटा, जैसे कि लॉग वगैरह) + 20 जीबी (अतिरिक्त बफ़र स्पेस) = 150 जीबी.
  3. अगर आपके सिस्टम में डिस्क स्पेस कम है, यानी कि 150 जीबी से कम स्पेस है (ऊपर दिए गए उदाहरण के मुताबिक), तो आपके पास Analytics डेटा सेव करने के लिए, डिस्क में ज़रूरत के मुताबिक स्टोरेज नहीं है.

रिज़ॉल्यूशन

Postgres सर्वर वाली मशीन में, ज़रूरत के मुताबिक डिस्क स्पेस जोड़ें.

Analytics डेटा को समय-समय पर मिटाया नहीं गया

संक्रमण की जांच

Edge पर एपीआई ट्रैफ़िक बढ़ने के साथ-साथ, Postgres डेटाबेस में सेव होने वाले Analytics डेटा की मात्रा भी बढ़ जाएगी. Postgres डेटाबेस में सेव किए जा सकने वाले Analytics डेटा की मात्रा, सिस्टम में उपलब्ध डिस्क स्पेस की मात्रा पर निर्भर करती है.

इसलिए, Postgres डेटाबेस में Analytics का अतिरिक्त डेटा सेव करने के लिए, आपको इनमें से कोई एक कार्रवाई करनी होगी:

  1. डिस्क स्पेस बढ़ाना.

    यह एक ऐसा विकल्प नहीं है जिसे बार-बार आज़माया जा सके, क्योंकि डिस्क स्पेस को बार-बार नहीं बढ़ाया जा सकता. साथ ही, यह महंगा भी होता है.

  2. डेटा के रखरखाव की ज़रूरी अवधि खत्म होने के बाद, डेटा को मिटाना.

    यह एक बेहतर तरीका है, क्योंकि इससे यह पक्का किया जा सकता है कि जिस डेटा की अब ज़रूरत नहीं है उसे समय-समय पर मिटाया जा रहा है.

अगर डेटा को समय-समय पर मैन्युअल तरीके से या क्रॉन जॉब का इस्तेमाल करके नहीं मिटाया जाता है, तो Analytics डेटा की मात्रा लगातार बढ़ती जाती है. इससे, सिस्टम में डिस्क स्पेस खत्म हो सकता है.

रिज़ॉल्यूशन

डेटा के रखरखाव की ज़रूरी अवधि खत्म होने के बाद, डेटा को मिटाने के लिए:

  1. डेटा के रखरखाव की अवधि तय करें. यह वह अवधि होती है जिसके लिए आपको Analytics डेटा Postgres डेटाबेस में सेव करके रखना है.
  2. किसी खास संगठन और एनवायरमेंट के लिए डेटा मिटाने के लिए, यह कमांड चलाएं:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql pg-data-purge
      org env number_of_days_to_retain [Delete-from-parent-fact - N/Y] [Skip-confirmation-prompt - N/Y]
    

स्क्रिप्ट में ये विकल्प मौजूद हैं:

  • Delete-from-parent-fact डिफ़ॉल्ट : नहीं. इससे, पैरंट फ़ैक्ट टेबल से डेटा के रखरखाव की अवधि से पुराना डेटा भी मिट जाएगा.
  • Skip-confirmation-prompt. डिफ़ॉल्ट: नहीं. अगर 'नहीं' चुना जाता है, तो स्क्रिप्ट, पैरंट फ़ैक्ट से डेटा मिटाने से पहले पुष्टि करने के लिए कहेगी. अगर डेटा मिटाने की स्क्रिप्ट को ऑटोमेट किया गया है, तो 'हां' चुनें.

ज़्यादा जानकारी के लिए, Analytics डेटा को समय-समय पर मिटाना लेख पढ़ें.

अगर समस्या बनी रहती है, तो Apigee Edge की सहायता टीम से संपर्क करें.