2013-08-03 39 views
5

ubuntu 64 bit işletim sistemi ve 1,6 GB RAM ile Amazon EC2 üzerinde MongoDB 2.4.4 yükledim.mongodb yüksek işlemci kullanımı

Bu sunucuda, yalnızca MongoDB başka hiçbir şey kullanmıyor.

Ama bazen CPU kullanımı% 99 ulaşmak ve ortalama yük: 500,01, 400,73, 620,77

Ben de sunucuda neler izlemek için sunucuda MMS yüklediniz. İşte

MMS detay enter image description here MMS ayrıntıları gereğince

, her sorguları için mükemmel çalışıyor indeksleme olduğunu.

1) YÜKSEK olmayan eşlenen sanal bellek aşağıda

Şüpheli detayları

2) YÜKSEK sayfa hataları

kimse tam olarak yüksek CPU kullanımına neden anlamak için bana yardımcı olabilir?

DÜZENLEME: @Dylan Tong yorumlarla sonra

i azalttık aktif connetions ama hala İşte yüksek olmayan eşlenen sanal belleği

enter image description here

+0

Çok sayıda bağlantınız var. Ne ops yapıyorsun? –

+0

@DylanTong Genel olarak, ekleme, güncelleme, okuma işlemleri vardır. Veritabanını raporlama için MongoDB kullanıyoruz. – GBD

+0

Çok sayıda etkin bağlantı, neden çok fazla eşlenmemiş belleğe sahip olduğunuzu açıklamalıdır. Ayrıca ~ 13k aktif bağlantılarınız iş yapıyorsa, CPU kullanımının çoğunu beklerdim. Kutunuzun, bu tür bir yükü işlemek için çok istekli gibi gelmiyor. İşin tuhafı, opampers kontrol paneliniz görünür zaman aralığında çok az işlem gösteriyor. 13k aktif bağlantılar bekleniyor mu? Kaç tane istemci/iş parçacığınız var ve yapılandırılmış bağlantı havuzu boyutu nedir? İmleçlerinizi uygulamanızda mı kapatıyorsunuz? –

cevap

4

bir var içine bakmak için bir kaç şeyin özeti:

1. Çok sayıda bağlantı ve imleç (13k) gözlendi: - düzeltme: bağlantı havuzunuzun uygun olduğundan emin olun. Raporlama ve mevcut istek oranınız için en fazla birkaç bağlantıya ihtiyacınız var. Ayrıca, sanırım bir m1small örneğiniz var, yani sadece 1 çekirdeğin var demektir.

2. Gözden sorguları ve indeksleri: - (açıklamak ile sorguları çalıştırmak), sorgular yürütülür nasıl gözlemlemek. Doğru model, normalde, çok az sayıda belgenin ve bir endeksin kullanımının sorgulanmasıyla sonuçlanır.

3. Bellek (kompakt ve uzaktan kumanda): - belleği en iyi şekilde kullanın. 1.6GB düşük. Ne kadar boş bellek olduğunu kontrol edin ve yerleşik olarak bildirilenlerle karşılaştırın. Düşük yerleşik hafızanın yaygın nedenlerinin bir kısmı parçalanmaya bağlı. Belge taşıma, boyut değiştirme gibi bir sürü varsa, veri dosyalarınızı birleştirmek için kompakt komutu çalıştırmalısınız. Ayrıca, kötü bir readahead de hafızanın zayıf kullanımına yol açabilir. Uzaktan kontrol ayarını kontrol edin (http://manpages.ubuntu.com/manpages/lucid/man2/readahead.2.html). Düşük değerler ile başlayan birkaç değeri deneyin (http://docs.mongodb.org/manual/administration/production-notes/). Üretim notları 32 (standart 512byte bloklar için) önermektedir. Belgeleriniz daha büyükse bazen daha yüksek değerler idealdir. Umut, yerleşik hafızanın mevcut belleğe yakın olması ve sayfa hatalarınızın azalmaya başlaması gerektiğidir.

Bundan sonra sonuna kadar kaynak kullanıyorsanız ve hala CPU'da kalıyorsanız, kaynaklarınızı artırmanız gerektiği anlamına gelir.

+0

Readahead ayarını nasıl kontrol edip değiştirebilirim? – GBD

+0

blockdev --setra (http://linux.die.net/man/8/blockdev). Seni gönderdiğim Üretim Notları bağlantısından geçebilirdim. Orada disklerinizin yükünü azaltacak ve IO'yu hızlandıracak başka ayarlar var. –

+0

Sunucuda fazla uzman değilim. Neden bize mongodb sunucu yöneticisi olarak katılmıyorsunuz? – GBD