ไม่มีใครมีสูตรใด ๆ หรืออาจมีข้อมูลตัวอย่างบางส่วนจากสภาพแวดล้อมของพวกเขาที่สามารถช่วยฉันประเมินว่าจะใช้เนื้อที่ดิสก์โดยแกรไฟต์ต่อดาต้าพอยน์เท่าใด
ไม่มีใครมีสูตรใด ๆ หรืออาจมีข้อมูลตัวอย่างบางส่วนจากสภาพแวดล้อมของพวกเขาที่สามารถช่วยฉันประเมินว่าจะใช้เนื้อที่ดิสก์โดยแกรไฟต์ต่อดาต้าพอยน์เท่าใด
คำตอบ:
whisper-info.py
ให้ข้อมูลเชิงลึกเกี่ยวกับสิ่งที่และวิธีการรวมไฟล์แต่ละไฟล์รวมถึงขนาดของไฟล์
อย่างไรก็ตามมันมีประโยชน์สำหรับไฟล์เสียงกระซิบที่มีอยู่เท่านั้น
เมื่อคุณต้องการเห็นขนาดที่คาดการณ์ไว้ของสคีมาก่อนที่จะวางไว้ลองใช้เครื่องคิดเลข Whisper เช่นที่มีอยู่ที่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
ดังนั้นโดยทั่วไปคุณจะรวมโฮสต์ของคุณต่อการจับคู่การเก็บข้อมูลต่อการเก็บข้อมูล - เซกเมนต์ต่อสถิติการคูณด้วยปัจจัยของระบบที่คุณตั้งใจจะใช้สิ่งนี้เช่นกันคำนึงถึงจำนวนสถิติใหม่ที่คุณจะติดตาม จากนั้นคุณก็ใช้พื้นที่เก็บข้อมูลไม่ว่าจะเป็นเท่าไหร่และอย่างน้อยก็เป็นสองเท่า (เพราะเรากำลังซื้อพื้นที่เก็บข้อมูลและเรารู้ว่าเราจะใช้พื้นที่เก็บข้อมูล ... )
ls -l
ผลลัพธ์ฉันจึงถือว่าเป็นไบต์ เมื่อฉันเพิ่มขนาดของไฟล์เก็บถาวรภายในไฟล์. wsp (ตามที่รายงานโดยwhisper-info.py
) พวกเขาจะเข้ามาใกล้กับขนาดไฟล์. wsp โดยรวม (ส่วนที่เหลือที่ฉันถือว่าเป็นข้อมูลเมตาและควรเป็นขนาดของไฟล์ทั้งหมด เวลาเนื่องจากข้อมูลลดลงเหลือความละเอียดของข้อมูลที่ลดลงและจุดข้อมูลเก่าจะถูกทิ้ง
ServerCount * MetricCount * 4.5MBytes
ในเอกสารสำหรับstatsd พวกเขาให้ตัวอย่างสำหรับนโยบายการเก็บข้อมูล
คงทนมี10s:6h,1min:7d,10min:5y
ซึ่งเป็น 10080 + 2160 + 262,800 = 275,040 จุดข้อมูลและพวกเขาให้มีขนาดที่เก็บของ3.2 เอ็มไอ
สมมติว่ามีความสัมพันธ์เชิงเส้นนี้จะเป็นประมาณ 12.2 ไบต์ต่อจุดข้อมูล
ไม่มีประสบการณ์โดยตรงกับ Graphite แต่ฉันจินตนาการถึงตรรกะเดียวกับที่เราใช้กับ Cacti หรือสิ่งอื่นที่ใช้ RRD หรือการเลื่อนเวลาแบบใช้โรลโอเวอร์ (Graphite จะไม่ใช้ RRD ภายในอีกต่อไป แต่ตรรกะการจัดเก็บดูเหมือนกัน)
คำตอบอย่างรวดเร็วคือ "อาจจะไม่มากเท่าที่คุณคิดว่าคุณต้องการ"
คำตอบยาวเกี่ยวข้องกับคณิตศาสตร์เฉพาะไซต์ สำหรับระบบตรวจสอบของเรา (InterMapper) ฉันหาระยะเวลาการเก็บรักษาความละเอียดและขนาดดาต้าพอยต์ทำการคูณและเพิ่มค่าใช้จ่าย
ตัวอย่างเช่นฉันจะใช้พื้นที่ดิสก์ - เราเก็บตัวเลขที่มีความแม่นยำ 5 นาทีเป็นเวลา 30 วันความแม่นยำ 15 นาทีเป็นเวลา 60 วันและจากนั้นความแม่นยำรายชั่วโมงสำหรับอีก 300 วันและเราใช้ 64 จำนวนเต็ม (8 ไบต์) เพื่อจัดเก็บ:
ที่ 8 ไบต์ต่อตัวอย่างที่ประมาณ 173KB บวกค่าใช้จ่ายที่ดีต่อสุขภาพสำหรับการจัดทำดัชนีการจัดเก็บและสิ่งที่คล้ายกันจะนำไปสู่ประมาณ 200KB สำหรับข้อมูลการใช้งานดิสก์ของพาร์ติชันหนึ่ง (ข้อผิดพลาดใด ๆ
จากตัวชี้วัดพื้นฐานฉันสามารถหาขนาด "ต่อเครื่อง" โดยเฉลี่ย (พาร์ติชั่นดิสก์ 10 ตัวพื้นที่สว็อปหน่วยความจำโหลดเฉลี่ยการถ่ายโอนเครือข่าย
ฉันยังเพิ่มสุขภาพที่ดีขึ้น 10% จากจำนวนสุดท้ายและปัดเศษดังนั้นฉันจึงกำหนดขนาดสิ่งที่ 6MB ต่อเครื่อง
จากนั้นฉันดูพื้นที่ 1TB ที่ฉันวางไว้เพื่อเก็บข้อมูลตัวชี้วัดสำหรับการทำแผนภูมิและพูดว่า "ใช่ฉันอาจจะไม่ได้ใช้พื้นที่เก็บข้อมูลหมดในช่วงชีวิตของฉัน :-)
ฉันมี 70 โหนดที่สร้างข้อมูลจำนวนมาก การใช้ Carbon / Whisper หนึ่งโหนดสร้างไฟล์ 91k เพียงอย่างเดียว (โหนดสร้างหลายสกีมาแต่ละไฟล์มีหลายตัวนับและฟิลด์ตัวแปรซึ่งจำเป็นต้องเลือกได้เช่น: (ชื่อโหนด). (สคีมา). (ตัวนับ) (subcounter) (เป็นต้น) ) .... และอื่น ๆ )
สิ่งนี้ให้ความละเอียดที่ฉันต้องการในการพล็อตกราฟที่ฉันต้องการ หลังจากรันสคริปต์เพื่อเติมข้อมูลโหนดที่เหลือ 69 โหนดฉันมีข้อมูล 1.3Tb บนดิสก์ และนั่นคือข้อมูล / โหนดเพียง 6 ชั่วโมงเท่านั้น สิ่งที่ทำให้ฉันเป็นไฟล์ flat csv จริงสำหรับข้อมูล 6 ชั่วโมงมีค่าประมาณ 230Mb / node 70 โหนดคือ ~ 16Gb ของข้อมูล พื้นที่เก็บข้อมูลของฉันคือ 120s: 365d
ฉันค่อนข้างใหม่กับฐานข้อมูลดังนั้นฉันอาจทำสิ่งผิดปกติ แต่ฉันเดาว่ามันเป็นค่าใช้จ่ายทั้งหมดสำหรับแต่ละตัวอย่าง
ดังนั้นมันจึงเป็นการทดลองที่สนุก แต่ฉันไม่คิดว่ามันสมเหตุสมผลที่จะใช้เสียงกระซิบสำหรับประเภทข้อมูลที่ฉันจัดเก็บ MongoDB ดูเหมือนจะเป็นโซลูตันที่ดีกว่า แต่ฉันต้องหาวิธีใช้เป็นแบ็กเอนด์ของ Grafana