Kapasite planlaması için rastgele trend G / Ç performansı


11

Çalıştığım yerde, bir Xen Hipervizörü kullanarak birçok sanal makineyi barındırmak için kullanılan çok sayıda "büyük demir" sunucumuz var. Bunlar genellikle 32 GB RAM, Çift Dört Çekirdekli işlemler ve G / Ç kapasitesine sahip hızlı disklerle yapılandırılır.

Mevcut donanım yapılandırmasının dişte biraz uzadığı ve şimdi daha büyük, daha hızlı ve daha parlak yeni donanımların kaynaklanma zamanı.

Yukarıda belirtildiği gibi, mevcut kit 32GB RAM ile konuşlandırıldı ve bir ana bilgisayara dağıtabileceğimiz VM sayısını etkili bir şekilde sınırladı.

Yine de daha yeni donanımları incelerken, tek bir şasi içinde 64, 72 ve hatta 96GB ile tek bir makinede daha fazla RAM alabileceğiniz açıktır. Açıkçası, bu her zaman bir kazanç olan belirli bir ana bilgisayara daha fazla makine almamıza izin verecektir. Şimdiye kadar tamamlanan analiz, sınırlama faktörünün artık disk alt sistemine kaydırılacağını göstermektedir.

Sorun şu anda, nerede olduğumuz hakkında bir fikir edinmeye çalışıyor ... Kullanım nedeniyle, G / Ç bant genişliği, daha fazla, rastgele I sayısı açısından sınırlı olmadığımızı biliyoruz. Tamamlanabilecek operasyonlar .. Anekdotla biliyoruz ki bu noktaya geldiğimizde iowait gök roketine gidiyor ve tüm makine performansı köpeklere gidiyor.

Şimdi sorduğum sorunun en önemli noktası, mevcut G / Ç performansını özellikle tamamlanan rastgele G / Ç işlemlerinin sayısı ile ilgili olarak doğru bir şekilde izlemenin / geliştirmenin bir yolunun farkında mı?

Gerçekten bir metrik almaya çalışıyorum "Bu yapılandırma başarıyla rastgele G / Ç istekleri sayısı X işleyebilir ve şu anda (ortalama) Z ops bir tepe ile Y ops yapıyoruz" dir.

Şimdiden teşekkürler!

Yanıtlar:


5

sarburada güzel bir iş çıkarıyor; işlem sayısını ve saniyede okunan / yazılan sektörleri toplar ve bu da daha sonra IO iş yükünüzü nispeten iyi bir doğrulukla (okuma / yazma oranları ve işlem boyutu açısından) tekrarlamak için kullanılabilir. ES'nizin "rastgele" ne olduğu konusunda belirleyici faktör). Mükemmel değil, ama tecrübelerime göre, baktığınız tahminleri yapmak için yeterince iyi bir iş çıkarıyor.


2

Yani, bu bir izleme ve kapasite raporlama sorununa benziyor. Trend istatistiklerini ölçmeye başlayacaksanız, karşılaştırmayı yapabilir, ilişkilendirebilir vb.

Araçlar açısından, açık kaynak dünyasında gangliyonlar, zenoss, nagios vb. Ve çok sayıda diğer satıcı ürününüz var.

Bunları, ilgilendiğiniz KPI'ları izlemek, ölçmek ve saklamak için yapılandırabilir ve daha sonra bunlar hakkında düzenli olarak rapor oluşturabilirsiniz.

RAM kullanımı ile ilgili sorularınız göz önüne alındığında, bellek istatistiklerini, takas kullanımını ve CPU'yu da dahil etmek mantıklı olacaktır, böylece bunları aynı süre boyunca kartta karşılaştırabilir ve hangisinin sınırlı olduğunu görebilirsiniz.

Veri yakaladıktan sonra, bunları raporlamak için güzel bir büyük DB'de saklayabilirsiniz, muhtemelen geçmiş verileri rarifiye edebilir, örn. Her 5 saniyelik metriği 6 ay boyunca, daha sonra dakika başına, sonra 5, sonra saatte, daha ileri geri gittiğinizde saklayın. Bu tür şeyler yazılabilir ve cron, autosys vb.

Bu raporlar size yönetimin ne istediğini verecektir - yani. güzel grafikler ile bir şey.

Günlük yönetim için, herhangi bir anda nasıl bir performans sergilediğinizi görmek için konsoldaki grafik / şekillerdeki gerçek zamanlı bilgilere bakabilirsiniz.


Yanıtınız için teşekkürler. Bulduğum en büyük sorun aslında ops sayısını doğru bir şekilde takip etmektir. Yani, ben veri miktarına raporları rastlamak onca şeyden taşınmış veya varlık iowait vb Bu oldukça burada .. tasarıyı uygun görünmüyor vs
Keiran Holloway

2

Gerekli tüm bilgileri tek bir dosyaya çekebileceğimiz ve ihtiyaç duyulan istatistikleri tekrarlayabileceğimiz için koleksiyon kullanıyoruz . Bu, kayıt aralığı başına IOPS sayısını, bağlam anahtarlarını, bellek istatistiklerini görmenizi sağlar. Bunu disk başına bozabilir veya sisteme genel bir bakabilirsiniz. Collectl ayrıca parlaklığı destekler.

Bu, toplam sistem performansına genel bir bakış için harika bir araçtır. Gözlemlerde iyi şanslar SATA diskleri, rastgele erişim yaparken genellikle 200-300 IOPS arasında zirveye çıkar.


15K RPM SAS sürücüler ile çok tecrübesi olan var mı?
Keiran Holloway

2

Disk G / Ç'lerini diğer tüm metriklerde yaptığımız şekilde kaydeder ve grafiğe ekleriz:

  • Veriler, SNMP kullanılarak ana bilgisayarlardan alınır. NAS / SAN kutularımız bunu doğal olarak yapıyor. USB-DISKIO-MIB'den bu bilgileri sağlayan tüm Linux ana bilgisayarlarında net-snmp kullanıyoruz .

  • Veriler saklanır (RRD formatında) ve Cacti kullanılarak grafiklendirilir . Bazı Disk G / Ç şablonları , bize normal akım, ortalama ve tepe biçiminde görüntülenen bir işlem sayısı ve boyutu verir.

Bu metriklerin bir ana bilgisayarda iostat/ dstat/ kullanımı kadar sonlu olması gerekmez sar. Ancak, yeni bir makine devreye alındığında, merkezi olarak depolandığında ve ileride referans olarak kullanılabilir durumda kaldığında otomatik olarak kurulum yapan yangın ve unut.

Bu verileri, operasyonel bazda olağandışı eğilimler konusunda uyarmak için kullanırız ve kapasite planlaması yaparken her zaman ona bakarız.

Gerçekten bir metrik almak için çalışıyorum "Bu yapılandırma başarıyla rastgele G / Ç istekleri X sayısını işleyebilir [..]".

Bununla ilgili birkaç sorun var:

  • Rasgele G / Ç'yi sıralı G / Ç'den ayırmak ve ölçmek oldukça zordur. İkisi arasındaki temel fark, disk tabağında depolanan blokların fiziksel yeri olduğundan. Birçok küçük işlemin muhtemelen disk hakkında noktalı küçük dosyalarla ilgili olması temelinde, işlemlerin boyutundan eğitimli bir tahmin yapabilirsiniz . Ama hiçbir garanti yok. Bu belki sırayla tek dosyadan verilerin küçük miktarlarda okuma veya disk üzerinde blokları bitişik olması.

  • Metrikleri kaydetmek, bugün taahhütlerinizin ne olduğu, zaman içinde nasıl değiştikleri ve böylece gelecekte nasıl değişecekleri hakkında çok iyi bir resim verecektir. Size söylemeyeceği şey tavanın ne olduğudur. En azından çok geç olmadan. Bunu belirlemek için bazı donanımlar (donanım özelliklerinizden), kıyaslama ( bonnie++kendime düşkünüm ) yapmalısınız ve bu domU'ların ne için kullanıldıkları / kullanıldıkları hakkında bazı lojistik fikirlere sahip olmanız faydalı olacaktır.


1

Depolama arka ucunuza (IBM SVC / DS8000) bağlı olarak, rastgele IOPS ile ilgili istatistikleri doğrudan buradan alabilirsiniz.

İstatistikleri sunucudan almak için nmon komutunu kullanabilirsiniz . Ücretsiz (birada olduğu gibi). Aslen IBM tarafından AIX için geliştirilen Linux'ta da çalışır.


Tüm depolama birimleri doğrudan bağlı ve debian ana bilgisayarlarda çalışır. FOSS her şey iyidir.
Keiran Holloway

1

İnsanlar SAR kullanıyorsa, en azından verilerinizi birkaç saniyede örneklediğinizi umuyorum. Collect kullandığımda saniyede bir örnek alıyorum. Rastgele G / Ç'de ne kadar iyi çalıştığınızı ölçtüğünüz kadarıyla, Robin Miller'ın dt (google) gibi bir araç kullanın ve kolayca bir sürü rastgele G / Ç oluşturabilir ve daha sonra topladığınız saniyede yapabilir. Tipik bir disk genellikle dönme gecikmesine bağlı olarak maksimum 200-300 I / Os / sn yapar. Diskin doğru konumda olması için 1/2 devrimi beklemek, blok boyutunun minimum etkiye sahip olmasını sağladı.

btw - iowait en yanlış anlaşılan ölçümlerden biridir. Cpu yükü ile ilgili bir şey yok, sadece cpu I / O meydana gelirken başka bir şey yapmadığı anlamına gelir. Aslında% 100 iowait iseniz bu aslında yaklaşık% 100 boşta demektir!

-işaret

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.