Hangi donanım iyi bir MongoDB Sunucusu yapar? Nereden alınır?


13

Diyelim ki dell.com'dasınız ve küçük başlangıçlarınız için MongoDB veritabanınızı çalıştırmak için bir sunucu satın alıyorsunuz. Dakikada onbinlerce yazma ve okuma (ancak küçük nesneler) yerine getirmeniz gerekecek. 2 işlemci ister misiniz? RAM'e daha fazla yatırım yapmak ister misiniz?

Duydum (eğer yanlışsam beni düzeltin) MongoDB RAM'de yapabildiği en iyi şekilde işler ve sonra her şeyi diske temizler, bu durumda büyük olasılıkla> 40GB RAM'den büyük bir L2 önbelleğe sahip bir CPU'ya yatırım yapmalıyım ve katı hal sürücüsü .. değil mi?

Üst düzey (~ 11.309 $, 2 pahalı işlemci, 96GB RAM) sunucu veya 2x (~ 6.419 $, 2 pahalı işlemci, 12GB RAM) sunucu ile daha iyi olur muyum?

Dell iyi mi veya daha iyi önerileriniz mi var? (ABD dışındayım, Portekiz'de)


3
Neden başlangıç ​​için EC2 gibi bir şey almak yerine donanım satın alıyorsunuz? En azından başlangıçta gereksinimlerinizin ne olacağını öğrenene kadar.

Tom ile aynı fikirde. Neden bulutta bazı örnekler almıyorsunuz?

1
@mixdev, yanılıyorsunuz: "Linux, NUMA ve MongoDB birlikte iyi çalışmaz." Kaynak: mongodb.org/display/DOCS/NUMA
Shadok

Yanıtlar:


19

Başlangıçta, RAM'de güçlendirmek isteyeceksiniz. İhtiyacınız olan RAM, depoladığınız veri miktarına, koleksiyon sayısına, bu koleksiyonlardaki dizinlere, veri erişim modellerine vb. Bağlıdır.

En önemli şey, indekslerinizi RAM'de tutmak için yeterli RAM'e sahip olmaktır. Aksi takdirde, Mongo bellek eşlemeli dosyaları RAM içine ve dışına taşırken, sunucularınız sürekli olarak sayfalara gireceğinden performansınız önemli ölçüde düşecektir. Tüm bunlara rağmen, yazma hızının etkilendiğini görmedik, ancak her şey değişti. İşlem kuyruğu, kızarmayı, dökümleri vb. Yazıyor, dizinleriniz artık RAM'e sığmadığında dramatik bir vuruş yapıyor.

Yani kısa bir cevap yok. Temel olarak, dizinleriniz hakkında akıllı olun. Sadece ihtiyacınız olanı kullanın. Mümkünse koleksiyonları küçük tutun (örn. Olabildiğince birden çok yere bölün.) Sınırlı koleksiyonlara bakmak da ilginçtir.


1
Deneyimlerimize göre, Mongo sorgular için RAM dışına çıktığında, sorgu yalnızca dokümanlara gitmez (sonsuza kadar çalışır, 5 dakika, 15 dakika, saat ...), ancak ekler başarısız olmaya başlar.
Jonesome


6

MongoDB ile istediğiniz şey RAM. Ve sonra biraz daha RAM. RAM satın almak acı veremez.


3

Üretim donanımı satın alma aşamasındaysanız, çalıştırdığınız uygulamanın önceden yazılmış olması gerekir, değil mi? Uygulamayı sahip olduğunuz donanımda çalıştırın ve metrikleri alın. Yavaş yavaş bazı bileşenleri değiştirin ve daha fazla metrik alın. İşiniz bittiğinde, uygulamanız ve senaryo için hangi odak noktalarının en önemli olduğunu bilirsiniz.


3

İlk olarak - olabildiğince fazla RAM satın alın. İkinci sınırlayıcı faktör disk hızıdır. RAID yardımcı olur. SSD yardımcı olur. Daha fazla parça yardımcı olur. Disk verimliliğine ve gerekli yanıt sürelerine kıyasla verimi ölçün, ardından bütçeniz dahilinde ne yapacağınıza karar verin.


1

Linux kümelenmiş bir çözümün daha iyi ve daha ucuz bir alternatif olup olmayacağını merak ediyorum.

MongoDB, verileri birçok sunucuya dağıtmanıza olanak tanır. Tek bir honking sunucusu ile bu imkansız olacak.

MongoDB'nin, honking sunucusuna ilişkisel bir veritabanı dağıtmanın yeterince iyi olmadığını öğrendikten sonra atılan sonraki adımlardan biri olduğunu düşündüm.


1

Dakikada on binlerce yazma hiçbir şeydir. Makul donanımda saniyede 50.000 veya daha fazla yazma elde edebilirsiniz . Donanım özellikleri gerçekten ne yapmaya çalıştığınıza bağlıdır. Genel olarak, iyi bir CPU'nun yanı sıra büyük veritabanları ve hızlı bir IO sistemleri için yeterli RAM önemlidir ...


0

Donanımınızı tasarlamadan önce sağlam bir temel oluşturmak önemlidir. Genellikle bu tür soruların deneyimli mongoDB çalışanları tarafından sorulmasını beklemeden önce sorulmasını bekleyebilirsiniz.

Mevcut Uygulama İstatistikleri (varsa)

  • Toplam Kayıt Sayısı?
  • Depolama alanı tahmini başlatılıyor mu?
  • Beklenen% büyüme / ay?
  • Ortalama Belge Boyutu?

Veri Besleme İş Yükü

  • Yeni Ekleme / gün, zirve ve saniye başına ortalama?
  • Güncelleme / gün, zirve ve saniye başına ortalama?
  • Okur / gün, zirve ve ortalama / saniye?
  • Sorgu başına döndürülen ortalama belge sayısı: 70
  • Silme / gün, en yüksek ve ortalama / saniye: Yok
  • Toplu yükler / toplu güncellemeler olacak mı? Eğer öyleyse, ne kadar büyük ve ne sıklıkta?
  • Kaç farklı belge türü olacak?
  • Her biri kaç tane?
  • Belgelerinizin nasıl görünmesini bekliyorsunuz (örnek belge)?

Sorgu Kalıpları ve Performans Beklentileri

  • Response SLA?
  • Response SLA?
  • Okumalar aralık tabanlı mı yoksa rastgele mi?

Beklenen Erişim Kalıpları

  • Gerekli ikincil dizin sayısı?
  • Özellik Sayısı?
  • Koşulları sırala?
  • Tek veya Bileşik?
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.