Fısıltı / Grafit için Disk Kapasitesi Planlaması


14

Herkes herhangi bir formül veya ortamlarından grafit başına veri noktası başına ne kadar disk alanı kullanılacağını tahmin etmeme yardımcı olabilecek bazı örnek veriler var mı?


2
Yalnızca disk kapasitenizi değil, disk G / Ç'nizi de doğru bir şekilde planladığınızdan emin olun. rrdtool, yıllar içinde, grafitlerin Whisper veritabanı formatından çok daha hızlı (2 kat daha hızlı?) hale getiren çok sayıda mikro optimizasyon biriktirdi. Tüm verilerinizi iyi SSD'de tutmayı planlıyorsanız, bu sizi en çok oraya götürecektir, ancak bir sürü Whisper DB'yi dönen diskte tutmayı planlamam. Ölçekte Grafit'in attığı disk G / Ç seviyelerinin düşük maliyetli olması yeterli değildir.
jgoldschrafe

Yanıtlar:


7

whisper-info.py dosyanın boyutu da dahil olmak üzere her dosyanın ne ve nasıl bir araya getirildiği hakkında size birçok fikir verir.

Ancak sadece mevcut fısıltı dosyaları için kullanışlıdır.

Bir şemayı yerine yerleştirmeden önce tahmini boyutlandırmayı görmek istediğinizde, https://gist.github.com/jjmaestro/5774063 adresinde bulunan gibi bir Fısıltı Hesaplayıcısı deneyin.

DÜZENLE:

Bir örnek istendiğinde ...

storage_schema:

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

Dosyama baktığımızda applied-in-last-hour.wsp, ls -lverimleri

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

ve whisper-info.py ./applied-in-last-hour.wspverim

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

Yani, temel olarak, ana bilgisayarlarınızı her bir elde tutma dönemi segmenti başına tutma maçına göre birleştirirsiniz, bunu da uygulamak istediğiniz sistemlerin çarpanı ile çarparsınız, bu da izleyeceğiniz yeni istatistiklerin sayısını etkiler. Sonra ne kadar depolama alırsanız yapın ve en azından iki katına çıkarın (çünkü depolama alanı satın alıyoruz ve kullanacağımızı biliyoruz ...)


Bundan bazı örnek numaralarınız olması (saklama ayarlarıyla eşleştirilmiş). Şu anda disk kullanımı açısından farklı zaman serisi veri depoları düşünüyorum - bu yüzden grafit canlı almak için bir yapılacaklar listesi.
Kyle Brandt

@KyleBrandt Yanıt güncellendi.
gWaldo

Bunun için teşekkürler. Yani dosya boyutu ile, veri toplama bir saat sonra ne olacak, ya da dosya boyutu hemen hemen her zaman olacak mı? 4415092 bu veriyi 5 yıl değerinde bir veriyi temsil ediyor mu, yoksa 1 saatlik veriyi bir saat temsil ediyor mu? Ayrıca, bu bayt veya bit mi?
Kyle Brandt

Bu, bu şirkette yeni bir uygulama ve eski uygulamama erişimim yok. Üst düzey fileSize sonucu sonuçla eşleştiğinden ls -l, bunu bayt olarak alıyorum. Arşivlerin boyutlarını .wsp dosyasında (bildirildiği gibi whisper-info.py) eklediğimde, genel .wsp dosya boyutuna (meta veri ve böyle olduğunu varsaydığım geri kalanına) yaklaşırlar. Bu, herkes için dosyanın boyutu olmalıdır. veriler düşük veri çözünürlüklerine düştüğünde ve eski veri noktaları atıldığında
gWaldo

Tamam, bu saklama ayarları ile. Kabaca:ServerCount * MetricCount * 4.5MBytes
Kyle Brandt

2

İstatistik belgelerinde veri saklama politikasına bir örnek verir .

Retensiyonlar 10s:6h,1min:7d,10min:5y2160 + 10080 + 262800 = 275040 veri noktasıdır ve arşiv boyutu 3,2 MiB'dir .

Doğrusal bir ilişki varsayarsak, bu veri noktası başına yaklaşık 12,2 Bayt olur .


ops-school.readthedocs.org/tr/latest/monitoring_201.html (zaman damgası, değer) çiftleri, çift başına 12 bayt tüketen uzun ve çift değer olarak depolanır. 0.2 fark muhtemelen dosya meta veri bilgi yükü nedeniyle ?!
user27465

1

Grafit ile doğrudan bir deneyim yok, ancak Kaktüsler için kullandığımız mantığın aynısını veya RRD veya zamana bağlı hareketin geçerli olacağını hayal ediyorum (Grafit artık RRD'yi dahili olarak kullanmıyor, ancak depolama mantığı karşılaştırılabilir görünüyor.)

Hızlı cevap "Muhtemelen düşündüğünüz kadar yer değil."


Uzun cevap, siteye özgü bazı matematiği içerir. İzleme sistemimiz (InterMapper) için tutma sürelerini, çözünürlükleri ve veri noktası boyutunu anlıyorum, biraz çarpma işlemi gerçekleştiriyorum ve ek yükü ekliyorum.

Örnek olarak disk alanı kullanacağım - rakamları 30 gün boyunca 5 dakika, 60 gün daha 15 dakika ve 300 gün daha saat hassasiyetle saklıyoruz ve 64 saklamak için -bit (8 bayt) tam sayı:

  • Toplam 21600 örnek, şu şekilde ayrılmıştır:
    • 30 günlük 5 dakikalık hassasiyet için 8640 örnek
    • 60 günlük 15 dakikalık hassasiyet için 5760 örnek
    • 300 gün 1 saat hassasiyet için 7200 numune

Örnek başına 8 baytta yaklaşık 173KB, depolama indeksleme için sağlıklı ek yük ve benzerleri, bir bölümün disk kullanım verileri için (200'den fazla tahmin etme hatası) yaklaşık 200KB'ye getirir.

Temel metriklerden ortalama "makine başına" boyutta çalışabilirim (10 disk bölümü, takas alanı, RAM, yük ortalaması, ağ aktarımı ve diğer birkaç şey) - makine başına yaklaşık 5 MB'a kadar çalışır.

Ayrıca son sayının üstüne% 10'luk sağlıklı bir değer ekliyorum ve yuvarlayabiliyorum, bu yüzden her makinede 6MB boyutunda bir şeyler boyutlandırıyorum.

Sonra grafik için metrik verilerini depolamak için yerleştirdiğim 1 TB'lık alana bakıyorum ve "Evet, çok fazla büyümedikçe muhtemelen ömrümde depolama alanım bitmiyor!" Diyorum. :-)


1
Üretimde tutma politikalarımla (5 dakikada 9 ay; saatlik olarak 1 yıl; günde 5 yıl) ve her biri ~ 20 8 bayt ölçülerine sahip yaklaşık 20 makine ve uyarı / alarm ile gerçek uygulamadan bir sayı atmak / kritik / kesinti olay geçmişi 5 yıldır 1.5G disk alanı kullanıyorum. Bu, InterMapper'ın her şeyi bir Postgres veritabanına eklemesiyle olur. Yani tekrar - hızlı cevap "Muhtemelen düşündüğünüz kadar yer değil" :-)
voretaq7

Ya, bu matematik basittir, gerçekten sadece Grafitin verileri nasıl sakladığına daha çok bakıyorum - ölçekte büyük farklılıklar yaratabilir. Bulduğum tek şey, dokümanlara göre çok yer tasarruflu olmaması (Muhtemelen oldukça agresif toplamalara güvendiği için).
Kyle Brandt

Whisper (grafitin kullandığı depolama arka ucu) bazı dahili boşluk çiğneme öğelerine sahiptir - muhtemelen bu sayfayı zaten görmüşsünüzdür. "Arşivler zaman aralıklarıyla örtüşüyor" bölümü bana göze çarpıyor, çünkü arşivler yukarıdaki örneklerimden daha büyük, çünkü hepsi zamanın başlangıcına geri dönüyor (60 günlük arşiv aslında 90 gün uzunluğunda; 300 günlük arşiv 390 gün). Whisper, ayrıca eklenmesi gereken her veri noktasıyla birlikte bir zaman damgası (4 veya 8 bayt) tutar. Gerçi zor görünmüyor, sadece şişirilmiş :)
voretaq7

0

Çok fazla veri üreten 70 düğümüm var. Carbon / Whisper kullanarak, bir düğüm yalnızca 91k dosya oluşturdu (düğüm, her biri birden fazla sayaç ve seçilebilir olması gereken değişken alanlara sahip birden fazla şema oluşturur. Örneğin: (nodename). (Şema). (Sayaç). (Alt sayaç). (Vb.) )....ve bunun gibi).

Bu, istediğim grafiği çizmem için gereken ayrıntı düzeyini sağladı. Kalan 69 düğümü doldurmak için komut dosyasını çalıştırdıktan sonra diskte 1.3 TB veri vardı. Ve bu sadece 6 saat değerinde veri / düğüm. Beni ne alır 6hrs değerinde veri için gerçek düz csv dosyası yaklaşık 230Mb / düğümdür. 70 düğüm ~ 16Gb veridir. Depolama şemam 120s: 365d idi.

Ben veritabanları için nispeten yeniyim, bu yüzden yanlış bir şey yapıyor olabilir, ama her örnek için tüm yükü olduğunu tahmin ediyorum.

Bu yüzden eğlenceli bir deneydi, ancak sakladığım veri türü için fısıltı kullanmanın mantıklı olduğunu düşünmüyorum. MongoDB daha iyi bir çözüm gibi görünüyor, ancak Grafana için bir arka uç olarak nasıl kullanılacağını anlamam gerekiyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.