VMware yöneticisine uygulamamız için VMware performans gereksinimleri nasıl tarif edilir?


23

Genellikle, yerinde, debian-kararlı tabanlı uygulamamızın kurulumu sanal bir makinede çalışır - tipik olarak VMware ESXi'de. Genel durumda, sanallaştırma ortamlarında görünürlük ya da etkileme yapmıyoruz ve örneğin VMware vCenter istemcisine ya da eşdeğerine erişimimiz yok. Burada VMware'e odaklanıyorum, çünkü bu gördüğümüz en yaygın olanı.

Biz isteriz:

  • Müşterinin VMware yöneticisine söyleyin: Uygulamamızı, örneğin X, Y ve Z performans kriterlerini karşıladığı sürece VMware ESX ortamınızda çalıştırabilirsiniz.
  • X, Y ve Z ölçütlerinin aslında sürekli olarak karşılanıp karşılanmadığını (örneğin şu anda ), çalışan bir sistemde bile (uygulamalarımızı durduramaz ve referansları çalıştıramıyoruz, ve başlangıçta bir kıyaslama yeterli olmaz) belirleyebiliyor. sanal ortamlar zamanla değişir).
  • X, Y ve Z kriterleri yerine getirilirse, uygulamamızı tatmin edici bir performansla yürütmek için yeterli sanal HW kaynağımızın olacağından emin olun.

Şimdi X, Y ve Z nedir?

Zaman zaman tekrar gördük, performans sorunları olduğunda sorunun bizim uygulamamızla değil sanallaştırma ortamı ile olduğunu gördük. Örneğin, başka bir sanal makine tonlarca CPU, bellek ya da disklerin depolandığı SAN'ı kullanır ve uygulamamız dışında bir şey kullanır. Şu anda bunu ispatlamanın ya da ispatlamanın bir yolu yok.

Teorik olarak, bazen uygulamamızın yavaş olması da mümkün olabilir ... ;-)

Kişi performans sorunlarımızın kök nedenini nasıl belirler: Sanal ortam mı yoksa uygulamamız mı?

Performans sorunları için genellikle 3 alan vardır: CPU, Memory ve DISK G / Ç.

İşlemci

Örneğin VMware'de, yönetici MHz olarak ifade edilen Rezervasyon ve Sınırı belirleyebilir, ancak örneğin bir ESX sunucusunda 512 MHz ile tam olarak başka bir ESX sunucusunda 512 MHz ile aynı, muhtemelen tamamen farklı bir ESX kümesinde?

Peki kişi bunu gerçekten alıp alamayacağımızı nasıl ölçüyor? Uygulamamız çalışırken 4 CPU'da% 212 CPU kullanımında olduğumuzu görebiliriz. Uygulamamız çok iş yapıyor mu yoksa aynı ana bilgisayardaki başka bir VM de CPU yoğun bir işlem yürütüyor ve tüm CPU'yu kullanıyor mu?

Hafıza (Balonculuk?)

Örneğin 16GB RAM istersek, bu sık sık yapılandırılır, ancak balon nedeniyle, aslında sadece 4 GB alırız ve sürpriz, uygulamamız yetersiz performans gösterir.

Biri VMware araçlarına mevcut balonla ilgili sorular sorabilir, ancak bunun sık sık yalan söylediğini (veya en azından yanlış olduğunu) bulduk. İşletim sisteminin 16GB toplam RAM olduğunu düşündüğü örnekleri gördük, tüm işlemlerin yerleşik belleğinin (RSS) toplamı 4GB RAM'dir, ancak VMware araçları bize 0 balonlama olduğunu söylese bile yalnızca 2GB RAM ücretsizdir: - (

Ayrıca, yalnızca RSS eklenmesi de geçerli değildir, çünkü kolayca paylaşılan RAM'ler olabilir, örneğin kopyalanabilen bellek. 512 MB + 512 MB mutlaka 1 GB anlamına gelmez, ancak daha az bir şey ifade eder. Bu nedenle, ne kadar RAM'in boşalması gerektiğine dair bir önlem almak ve böylece balonları güvenilir şekilde tespit etmek için kimse RSS'i tüm işlemlerden çıkaramaz. Bazı balon olaylarını saptayabilir, ancak balonlamanın etkin olduğu ancak bu yöntemle tespit edilemeyen başka durumlar da vardır.

Disk G / Ç

Sanırım zamanla disk okuma ve yazma sayısını, okunan ve yazılan bayt sayısını ve% IO'yu bekleyeceğimizi çizebiliriz. Fakat bu bize disk G / Ç’nin doğru bir resmini verir mi? Tüm CPU'yu kullanan başka bir VM'de çalışan bir bitcoin madencisi varsa, temeldeki SAN tam olarak aynı performans gösterse bile, bizim CPU kaynaklarımızın azalması ve dolayısıyla IO'nun beklemesi nedeniyle IO% bekleme oranının artacağını hayal ediyorum ( % olarak ölçülür ) yükselir.

Öyleyse, özet olarak, örneğin bir VMware yöneticisi tanımlamak için hangi dili kullanabiliriz, taşınabilir ve ölçülebilir bir şekilde hangi performansa ihtiyacımız var?


Başvurunuzun asıl gereksinimleri nelerdir? Şimdiye kadar tanımladığınız şey, ortamımdaki kaynak gereksinimlerini doğru bir şekilde ölçmem için yeterli değil ve VMware'de çok iyi bilgiliyim. Hedef kitlenizin daha da zor zamanları olur. Uygulamada, vRealize Operations Manager'ı kullanarak satıcı gereksinimlerini göz ardı etmeyi ve geçmiş ölçümlere ve gözlemlere dayalı VM'leri ölçmeye / ölçmeye karar veriyorum.
ewwhite

1
@wwhite: Hiçbir şekilde bir donanım uzmanı değilim. Ama bana özel olalım ve 8GB RAM'e sahip bir Core i7-5820K'de iyi çalıştığını söyleyeyim . Manyetik diskler ca. 2015 iyi, SSD daha iyi (gerekirse daha spesifik olabilirim). 80GB boş disk alanına ihtiyacımız var.
Peter V. Mørch

2
Bir yönetici olarak, "Kaç tane çekirdek ayırmam gerekiyor, asıl RAM gereksinimi nedir, bir GİB ve verim açısından depolama gereksinimi nedir, depolamanın büyüme oranı nedir? ince-sağlama, vb? "
ewwhite

Uygulamanız performans açısından nelere ihtiyaç duyar? Başvurunuz için kriterleriniz var mı? Söylemek "It runs fine with x, y, and z"yeterince kesin değil. Müşterilerinize tam olarak uygulamanızın ne istediğini söyleyebilmeniz gerekir. Size bu kaynakları veriyorlarsa ve uygulama kötü performans gösteriyorsa, sorun değil "What do we need from a resource perspective?", ama"Why is it performing poorly even though the proper resources have been allocated?"
joeqwerty

1
@beyaz: "Çözüldü"? Hayır. Hala bir VMware yöneticisine verebileceğim 25 kelimelik bir ağlamaya sahip değilim ve daha sonra bildiğiniz gibi "buna bağlı" olduğu için tahmin edilebilir bir performans elde edeceğimizi test edip bilebiliriz. Ancak cevabınızı kabul ettim, çünkü artık böyle kesin ve ölçülebilir bir gerekliliğin mümkün olmadığını ve bilgilerinizin doğru dili konuşmaya uzun bir yol kat ettiğini düşünüyorum. Gelecekte, "Performansı gidermemizi istiyorsanız, en azından vCenter'ınıza erişebilmemiz gerekecek" rotasına gitmemizi önereceğim.
Peter V. Mørch

Yanıtlar:


23
  • Cidden, çoğu VMware yöneticisi bu konuda iyi değil: Kaynak yönetiminin iyi anlaşılmaması, çoğu zaman Linux bilgisinin olmaması (yardımcı olur) ve zaman bant genişliği eksikliği. Şirket içi yöneticilerin çoğunun derin sanallaştırma bilgisini korumakta zorlandığını biliyorum.

  • Neyse ki, okuyabileceğiniz bir kitap var !

  • Çoğu VMware ortamı mükemmel değildir: Zayıf küme tasarımı, kötü kaynak planlaması , standart altı depolama (yani Synology NAS), yanlış yapılandırılmış HA, izleme veya yama yok.

  • Bir kuruluş olarak VMware bizi başarısız ediyor: Güncel bilgileri yaymakta ve en iyi uygulamaları tanıtmakta özellikle başarısız oluyorlar. Sık sorulan sorulara yönelik temel araştırmalar, süreçlerin ve tasarımların zaman içinde değişmesine rağmen 2009 ve daha eski VMware revizyonlarından sonuç üretmektedir.

Bütün bunlar sana karşı iş görecek.

Çözümünüzün gerçek gereksinimlerini belirlemelisiniz. Cihazınızın gerektirdiğini doğru bir şekilde söyleyebilmeniz : 2 vCPU, 8GB RAM ve 500 GİB depolama performansı benim gibi biri için çok uzun bir yol kat eder.

Diğer yaklaşım sağlıklı veya ideal bir ortamı gözlemlemek ve oradan metrikleri tahmin etmektir.

Bazı dağıtımlarla ilgili sorunları açıkladınız. Sorunlar ve darboğazlar nelerdi?


Sağ boyutlu bir VM örneği:

300 kullanıcılı bir kuruluş için bir Exchange sunucusu.

  • Zamana karşı 6 haftalık iş yükü / stres sıcaklık haritamız var.
  • 6 vCPU'lar, sivri uçlar için tampon oda bulunan stres bölgesinin üzerinde kalmamızı sağlıyor.
  • 32GB RAM, bizi stres değerinin üstünde tutar, ancak gerçekte ihtiyaç duyulanın üzerinde makul olmayan bir miktar değildir.

görüntü tanımını buraya girin

  • Birkaç GB RAM ve bir vCPU'yu geri alabilirim, ama sonuçta, bu verimli bir VM.
  • İdeal şartlar altında başvurunuzun bu şekilde izlenmesini sağlamak akıllıca olacaktır.

görüntü tanımını buraya girin


VM kaynak izleme örnekleri.

İyi: - VM doğru boyutta. - İşlemci küme üzerinden aşırı yüklenmiş durumda, ancak çekişme içinde değiliz.

görüntü tanımını buraya girin

Bad-imsi:

  • VM, yapılandırıldığı tüm RAM'leri asla alamaz.
  • VM zaten RAM değiştiriyor.
  • CPU çok fazla yapılandırılmış.

görüntü tanımını buraya girin


2
Cevabınız için teşekkürler, Argüman uğruna, bir müşteride, 2 vCPU, 8GB RAM ve 500 GİB depolama performansı (cevabınızdan) ile harika çalıştığını söyleyelim. Başka bir müşteri sitesinde, aynı şeyi istiyoruz ve VMware yöneticisine göre bunu alıyoruz. Bununla birlikte, 2vCPU'lar diğer CPU aç 17'leri ile paylaşılır ve 8GB RAM de balonlanır. VM disklerini çok iyi anlamıyorum, öyleyse şunu anladığımızı söyleyelim. Bizim app bu iki ESXi ortamının ilkinde ve diğerlerinde korkunç bir performans sergiliyor. Bu farkı VM'lerin içinden nasıl ölçebilirim?
Peter V. Mørch

1
CPU'nun çok fazla yüklenip yüklenmediğini görmek için VM'nizin üstündeki " CPU Steal " ı izleyebilirsiniz . RAM şişirme / değiştirme için, kötü performans dışında, VM'nin içinden söylemek zor. Yine de, VM için vCenter ve kaynakların bir görünümünü isteyebilirsiniz. Örnekler için yukarıya bakın.
ewwhite

1
CPU Steal'ı inceleyeceğim. Bazen uygulamalarımızda VMware admin işaret parmaklarına ve yavaş VMware ortamında parmakları işaretlemekteyiz. Ancak, çoğu zaman vSphere'e erişimi bile göremiyoruz ve diğer kurulumlarda iyi çalıştığında sorun gidermek zorlaşıyor. Sanırım bir yaklaşım şöyle olabilir: "Performans sorunlarını gidermemizi istiyorsanız, en azından vCenter'ınıza erişebilmemiz gerekir"
Peter V. Mørch

3
Çoğu VMware yöneticisi bu şeyleri nasıl okuyacağını bile bilmiyor. Onlardan sonra temizlik yapmak için çok zaman harcıyorum. Bu yüzden bir satıcı olarak, kurulumlarına erişim veya içgörü istemek zordur. Ancak gereksinimlerinizi sağlamlaştırmanın ve uygulamanın en iyi yolu olacağını düşünüyorum. Genelde rezervasyonları ayarlamanızı önermiyorum, ancak başvurunuz kritikse, mantıklı olabilir. Veya en azından bir "hisse önceliği" belirleme. Uygulama ne yapar?
ewwhite

1
Bunu küçük, orta ve büyük bir önerilen konfigürasyona sahip bir VMware cihazı olarak dağıtmayı düşündünüz mü?
ewwhite
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.