व्हिस्पर / ग्रेफाइट के लिए डिस्क क्षमता योजना


14

क्या किसी के पास कोई सूत्र है, या शायद उनके वातावरण से कुछ नमूना डेटा हैं जो मुझे यह अनुमान लगाने में मदद कर सकते हैं कि ग्रेफाइट प्रति डेटाइट द्वारा कितना डिस्क स्थान का उपयोग किया जाएगा?


2
सुनिश्चित करें कि आप अपनी डिस्क I / O की योजना सही ढंग से बना रहे हैं, और न केवल आपकी डिस्क क्षमता। Rrdtool ने वर्षों में, बहुत सारे माइक्रो-ऑप्टिमाइज़ेशन जमा किए हैं जो ग्रेफाइट के व्हिस्पर डेटाबेस प्रारूप की तुलना में इसे बहुत तेज (2x तेजी से) बनाते हैं। यदि आप अपने सभी डेटा को सभ्य एसएसडी पर रखने की योजना बना रहे हैं, तो यह आपको वहां सबसे अधिक मिलेगा, लेकिन मैं कताई डिस्क पर व्हिस्पर डीबी की एक पूरी टन रखने की योजना नहीं बनाऊंगा। पैमाने पर, यह सिर्फ लागत प्रभावी नहीं है कि डिस्क I / O स्तर जो ग्रेफाइट फेंकता है।
jgoldschrafe

जवाबों:


7

whisper-info.py आपको फ़ाइल के आकार सहित प्रत्येक फ़ाइल को क्या और कैसे एकत्रित किया जाता है, इसकी बहुत जानकारी देता है।

हालाँकि यह केवल मौजूदा कानाफूसी फ़ाइलों के लिए उपयोगी है।

जब आप किसी स्कीमा की भविष्य कहनेवाला आकार देने से पहले देखना चाहते हैं, तो एक कानाफूसी कैलकुलेटर की कोशिश करें, जैसे कि https://gist.github.com/jjmaestro/5774063 पर उपलब्ध

संपादित करें:

जब एक उदाहरण के लिए कहा ...

storage_schema:

{
    :catchall => {
      :priority   => "100",
      :pattern    => "^\.*",
      :retentions => "1m:31d,15m:1y,1h:5y"
    }
}

मेरी फाइल को देख रहा है applied-in-last-hour.wsp , ls -lपैदावार

-rwxr-xr-x 1 root root 4415092 Sep 16 08:26 applied-in-last-hour.wsp

और whisper-info.py ./applied-in-last-hour.wspपैदावार

maxRetention: 157680000
xFilesFactor: 0.300000011921
aggregationMethod: average
fileSize: 4415092

Archive 0
retention: 604800
secondsPerPoint: 10
points: 60480
size: 725760
offset: 52

Archive 1
retention: 2678400
secondsPerPoint: 60
points: 44640
size: 535680
offset: 725812

Archive 2
retention: 157680000
secondsPerPoint: 600
points: 262800
size: 3153600
offset: 1261492

इसलिए, मूल रूप से आप प्रति होस्टेशन प्रति मैच-प्रति-खंड-प्रति-प्रति के अनुसार अपने मेजबान को प्रति-मैच-सेगमेंट में जोड़ते हैं, सिस्टम के एक कारक से गुणा करते हैं जिसे आप इसे लागू करना चाहते हैं, नए आँकड़ों की संख्या में कारक जो आप ट्रैक करने जा रहे हैं। फिर आप जो भी भंडारण की मात्रा लेते हैं और उसे कम से कम दोगुना करते हैं (क्योंकि हम भंडारण खरीद रहे हैं, और हम जानते हैं कि हम इसका उपयोग करेंगे ...)


किसी भी मौका आपके पास कुछ नमूना संख्याएं हैं (प्रतिधारण सेटिंग के साथ जोड़ी गई)। अभी मैं डिस्क उपयोग के संदर्भ में अलग-अलग समय श्रृंखला डेटा स्टोरों के बारे में सोच रहा हूं - इसलिए उस के लिए ग्रेफाइट लाइव होना एक टूडो का एक सा है।
काइल ब्रांट

@KyleBrandt उत्तर अपडेट किया गया।
गावल्डो

इसके लिए धन्यवाद। तो filesize के साथ, यह है कि यह डेटा एकत्र करने के एक घंटे के बाद क्या होगा, या यह है कि क्या filesize बहुत हमेशा होगा? तो इस प्रतिधारण डेटा के 5 साल के मूल्य का 4415092 प्रतिनिधि है, या 1 मिनट के डेटा के एक घंटे का प्रतिनिधि है? इसके अलावा, यह है कि बाइट्स या बिट्स?
काइल ब्रांट

यह इस कंपनी में एक नया कार्यान्वयन है, और मेरी अपने पुराने तक पहुंच नहीं है। चूंकि शीर्ष-स्तरीय फ़ाइलसाइज़ परिणाम परिणाम से मेल खाता है ls -l, इसलिए मैं इसे बाइट करता हूं। जब मैं .wsp फ़ाइल (जैसा कि रिपोर्ट किया जाता है whisper-info.py) के भीतर अभिलेखागार के आकारों को जोड़ देता हूं , तो वे समग्र .wsp फ़ाइल आकार के करीब आ जाते हैं (बाकी मैं मेटाडेटा और इस तरह मान लेता हूं। यह सभी के लिए फ़ाइल का आकार होना चाहिए। समय, जब डेटा कम डेटा रिज़ॉल्यूशन के लिए गिरता है, और पुराने डेटा पॉइंट्स को छोड़ दिया जाता है।
gWaldo

ठीक है, इसलिए इस अवधारण सेटिंग्स के साथ। मोटे तौर पर:ServerCount * MetricCount * 4.5MBytes
काइल ब्रांट

2

आँकड़े के लिए प्रलेखन में वे एक डेटा अवधारण नीति के लिए एक उदाहरण देते हैं

रिटेंशन 10s:6h,1min:7d,10min:5yजो 2160 + 10080 + 262800 = 275040 डेटा पॉइंट्स हैं और वे 3.2 MiB का आर्काइव साइज देते हैं ।

एक रैखिक संबंध मानते हुए, यह लगभग 12.2 बाइट्स प्रति डेटा बिंदु होगा


ops-school.readthedocs.org/en/latest/monitoring_201.html (टाइमस्टैम्प, मूल्य) जोड़े एक लंबे और दोहरे मूल्य वाले 12 बाइट्स प्रति जोड़ी के रूप में संग्रहीत किए जाते हैं। 0.2 शायद फ़ाइल मेटाडेटा जानकारी ओवरहेड के कारण अलग है?
user27465

1

ग्रेफाइट के साथ कोई प्रत्यक्ष अनुभव नहीं है, लेकिन मैं उसी तर्क की कल्पना करता हूं, जैसा कि हमने कैक्टि या कुछ और आरआरडी या टाइम-रोलओवर संचालित के लिए इस्तेमाल किया था (ग्रेफाइट आंतरिक रूप से आरआरडी का उपयोग नहीं करता है लेकिन भंडारण तर्क तुलनीय लगता है।)

त्वरित उत्तर है "शायद उतना स्थान नहीं है जितना आपको लगता है कि आपको आवश्यकता होगी।"


लंबे उत्तर में कुछ साइट-विशिष्ट गणित शामिल हैं। हमारी निगरानी प्रणाली (इंटरमापर) के लिए मैं अवधारण अवधि, रिज़ॉल्यूशन और डेटा पॉइंट आकार का पता लगाता हूं, कुछ गुणा करता हूं, और ओवरहेड में जोड़ता हूं।

एक उदाहरण के रूप में मैं डिस्क स्थान का उपयोग करूंगा - हम 30 दिनों के लिए 5 मिनट की सटीकता के साथ आंकड़े संग्रहीत करते हैं, 60 दिनों के लिए 15 मिनट की सटीकता और फिर आगे के 300 दिनों के लिए प्रति घंटा सटीक और हम 64 का उपयोग कर रहे हैं। -bit (8 बाइट) पूर्णांक इसे संग्रहीत करने के लिए:

  • 21600 नमूने कुल, टूट गए:
    • 30-दिन 5 मिनट की सटीकता के लिए 8640 नमूने
    • 60 दिन 15 मिनट की सटीकता के लिए 5760 नमूने
    • 300 दिनों के 1 घंटे की सटीकता के लिए 7200 नमूने

प्रति नमूना 8 बाइट्स जो कि लगभग 173KB है, स्टोरेज इंडेक्सिंग के लिए प्लस हेल्दी ओवरहेड है और एक विभाजन डिस्क उपयोग डेटा (ओवरस्टिमेशन की ओर कोई भी त्रुटि) के लिए इसे लगभग 200KB तक लाता है।

बेस मेट्रिक्स से मैं औसत "प्रति मशीन" आकार (10 डिस्क विभाजन, स्वैप स्पेस, रैम, लोड एवरेज, नेटवर्क ट्रांसफर और कुछ अन्य चीजें) - लगभग 5 एमबी प्रति मशीन पर काम कर सकता हूं।

मैं अंतिम संख्या के शीर्ष पर एक स्वस्थ 10% जोड़ता हूं और राउंड अप करता हूं, इसलिए मैं चीजों को 6 एमबी प्रति मशीन पर आकार देता हूं।

तब मैं अंतरिक्ष के 1TB को देखता हूं जो मैंने चार्टिंग के लिए मैट्रिक्स डेटा संग्रहीत करने के लिए चारों ओर रखा है और कहता है "हाँ, मैं अपने जीवनकाल में भंडारण से बाहर नहीं चल रहा हूं जब तक कि हम पूरी तरह से विकसित न हों!" :-)


1
वास्तविक उत्पादन से एक संख्या फेंकने के लिए, मेरी उत्पादन प्रतिधारण नीतियों (5 महीने में 9 महीने, प्रति घंटा 1 वर्ष; प्रतिदिन 5 वर्ष) और ~ 20 8-बाइट मैट्रिक्स के साथ लगभग 20 मशीनें, साथ ही चेतावनी / अलार्म। 5 साल के लिए / महत्वपूर्ण / आउटेज घटना इतिहास मैं डिस्क स्थान का 1.5G उपयोग कर रहा हूं। यह InterMapper एक Postgres डेटाबेस में सब कुछ डालने के साथ है। तो फिर से - त्वरित उत्तर है "संभवतः उतना स्थान नहीं है जितना आपको लगता है कि आपको आवश्यकता होगी" :-)
voretaq7

हां, वह गणित सीधा है, मैं वास्तव में सिर्फ यह देख रहा हूं कि ग्रेफाइट इसे कैसे संग्रहीत करता है - बड़े पैमाने पर अंतर कर सकता है। केवल एक चीज मुझे मिली है कि डॉक्स के अनुसार यह बहुत अधिक स्थान कुशल नहीं है (संभवतः क्योंकि यह काफी आक्रामक रोलअप पर गिना जाता है)।
काइल ब्रांट

कानाफूसी (भंडारण बैक-एंड ग्रेफाइट का उपयोग करता है) में कुछ अंतर्निहित अंतरिक्ष-चबाने वाले आइटम हैं - आपने शायद पहले ही उस पृष्ठ को देखा है। "अभिलेखागार समय अवधि" के बारे में खंड मेरे लिए खड़ा है क्योंकि इसका मतलब है कि अभिलेखागार मेरे उदाहरणों से ऊपर हैं क्योंकि वे सभी समय की शुरुआत में वापस जाते हैं (60 दिन का संग्रह वास्तव में 90 दिन लंबा है; 300 दिन का संग्रह है 390 दिन लंबा) है। कानाफूसी प्रत्येक डेटा बिंदु के साथ एक टाइमस्टैम्प (4 या 8 बाइट्स) भी रखता है जिसे भी जोड़ने की आवश्यकता है। हालांकि मुश्किल नहीं लग रहा है, बस फूला हुआ :)
voretaq7

0

मेरे पास 70 नोड हैं जो बहुत अधिक डेटा उत्पन्न करते हैं। कार्बन / व्हिस्पर का उपयोग करते हुए, एक नोड ने अकेले 91k फाइलें बनाईं (नोड में प्रत्येक मल्टीपल काउंटर और चर क्षेत्र वाले कई स्कीमा उत्पन्न होते हैं, जिन्हें चयन करने की आवश्यकता होती है। उदाहरण के लिए: (nodename)। (स्कीमा)।) (काउंटर)। (उप-एनकाउंटर) (आदि) )....और इसी तरह)।

इससे मुझे जो भी ग्राफ़ चाहिए, उसे प्लॉट करने के लिए आवश्यक ग्रैन्युलैरिटी मिल गई। शेष 69 नोड्स को आबाद करने के लिए स्क्रिप्ट चलाने के बाद, मेरे पास डिस्क पर 1.3Tb डेटा था। और वह केवल 6hrs मूल्य का डेटा / नोड है। मुझे क्या मिलता है 6hrs डेटा के लिए वास्तविक फ्लैट सीएसवी फ़ाइल 230Mb / नोड के बारे में है। 70 नोड्स ~ 16 जीबी डेटा है। मेरा स्टोरेज-स्कीमा 120s: 365d था।

मैं डेटाबेस के लिए अपेक्षाकृत नया हूं, इसलिए मैं कुछ गलत कर सकता हूं, लेकिन मुझे लगता है कि यह प्रत्येक नमूने के लिए सभी ओवरहेड है।

तो यह एक मजेदार प्रयोग था, लेकिन मुझे नहीं लगता कि जिस तरह का डेटा मैं स्टोर कर रहा हूं, उसके लिए कानाफूसी का उपयोग करना समझ में आता है। MongoDB एक बेहतर विलेयोन की तरह लगता है, लेकिन मुझे यह पता लगाने की आवश्यकता है कि इसका उपयोग ग्राफाना के बैकएंड के रूप में कैसे किया जाए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.