SQL Server'ı Sanal Makinede çalıştırmak için en iyi yöntemler nelerdir?


21

SQL Server'ı Sanal Makinede çalıştırmak için en iyi yöntemler nelerdir? Çevrimiçi işlem faaliyetlerim çok düşük, ancak birden fazla web sitesine veri raporlama amacıyla yüksek miktarda veri işleme var.


2
Diskler nerede saklanıyor? yerel bir 5400 RPM HDD’de mi? Fiber bağlantıları ve 15k mil diskleri olan bir SAN'da? Bugünlerde tüm VM'ler IO ile ilgili, işlemcide göz önünde bulundurulacak hiçbir şey yok.
jcolebrand

Hayır, yerel değil. Ancak SAN'ın ayrıntılarını bilmiyorum.
JerryOL

2
Henüz yeterli üne sahip olmadığım için yorumlar ekleyemiyorum, ancak 2008 R2'de [Microsoft'a göre] [1], sabit ve dinamik sanal diskler arasında çok az performans farkı var. [1]: blogs.msdn.com/b/tvoellm/archive/2009/08/05/...
Terry BOCHATON

@Terry, gelecekte böyle bir cevabı işaretlemekten çekinmeyin, biz sizin için dönüştürelim.
jcolebrand

Yanıtlar:


18

Fiziksel makinelerdeki gibi IO kraldır. Sanallaştırmanın farkedilir bir IO çarpması olacak (bir çarpışın ne kadarının seçtiğiniz teknolojiye bağlı olduğu), bu nedenle bunu daha da arttıracak ve IO performansına daha fazla zarar verecek bir şey yapmadığınızdan emin olun.

  • Dinamik sanal diskler yerine her zaman sabit boyut kullanılır ve temel sürücülerin / dizilerin yeterli olduğundan emin olun. Dinamik vdisks sabit boyutlu olanlardan daha az performans gösterir.
  • Sanal Makinelerdeki veriler kritik önemde değilse, daha fazla performans için VM çözümlerini yazmaları önbelleğe alma özelliğini (misafir işletim sistemine fiziksel olarak ne zaman yazıldığına dair yalan söyleme) açın. Bu, verilerin kolayca değiştirildiği bir geliştirme ve test makinesi için ya da herhangi bir sorunla karşılaşırlarsa yeniden oluşturulabilen master için yerel salt okunur kopyalar için kullanışlıdır, ancak bu gibi seçeneklerin üretim ve yedekleme sistemleri için kapalı kalması önerilir. makine beklenmedik bir şekilde kapanırsa veri kaybı olasılığını artırır (veya daha kötüsü, yolsuzluk).
  • Her VM'nin, gerekli IO'lardan kaçınmak için her bir veritabanının normal çalışma setinin yeterli miktarda odaya sığacak şekilde sığacak şekilde ayarlanmış yeterli RAM olduğundan emin olun. Ayrıca, hipervizörün herhangi bir zamanda VM RAM’ini çıkarmayacağından emin olun (örneğin, çoğu VMWare ürünü bunu yapabilir; bu, aynı donanımda olabileceğinden daha büyük bir VM kümesi çalıştırmanıza izin verir, ancak performansın düşmesine neden olabilir). büyük ol - bu davranışı ayarlamak ya da kapatmak için bir seçenek var).
  • Ana bilgisayar RAID5 dizileri kullanıyorsa, RAID10'a geçmeyi düşünün. Bu, kullanılabilir alanı azaltacaktır, ancak RAID5 (veya 6) ile görülebilen yazma performansı sorunlarını giderecektir.
  • Çok fazla GÇ etkinliği görmesi muhtemel VM'ler için, onlara kendi sürücülerini veya dizilerini vermeyi düşünün veya yalnızca sürücülerini / dizilerini düşük etkinlik gösteren verilerle paylaşmalarını sağlayın.

Tabii ki tüm DB'niz (ve VM'in çalıştığı her şey) VM'ye tahsis edilen RAM'e uyuyorsa ve çok az yazma etkinliği görüyorsa, IO performansı bir sorundan daha az olabilir.

Düzenleme: birkaç nokta daha:

  • Sanal disk kullanıyorsanız, performans için en iyi denetleyici türünün kullanıldığından emin olun. Bazı sanallaştırma çözümleri, daha iyi konuk uyumluluğu için birkaç sanal denetleyici türü sunar ve konukların taklit ettikleri tasarımdaki protokol kısıtlamaları ve konuk işletim sisteminin sürücülerindeki kısıtlamalar nedeniyle, diğerlerinden daha az verimli bulabilirsiniz.
  • Sanallaştırma çözümünüz sanal sürücü denetleyicisi için belirli sürücüler sunuyorsa, konuk işletim sisteminizin bunları kullandığından emin olun - bunlar bellek belleğine kopya sayısını ve ana bilgisayar <-> hipervizörü <-> konuk bağlamını azaltarak toplu IO'yu hızlandırabilir bazı işlemlerde yer alan anahtarlar.
  • Basit SMB paylaşımları veya iSCSI gibi ağ depoları kullanıyorsanız yukarıdaki iki nokta geçerlidir: sunulan en verimli sanal ağ denetleyicisini kullandığınızdan ve misafir işletim sisteminizin önerilen sürücüyü kullandığından emin olun, aksi takdirde her iki gecikme ve bant genişliği, sanallaştırma katmanının gereksinimlerinden daha sınırlı olabilir.

1
Evet, evet ve hayır. Bir iSCSI başlatıcısı aracılığıyla VM'ye monte edilmiş bir SAN birimi oldukça hızlı olacak!
Gaius

1
@Gaius: iyi nokta. VNIC'ler ve sürücüler hakkında, bu durumlarda ekstra darboğazların kaynağı olabilecek bir not ekledim.
David Spillett

9

1
• Makalelerden vurgulamak isteyebileceğiniz parçaları var mı?
jcolebrand

2
Hayır. Sanallaştırma karmaşık bir konu olabileceğinden, hepsini okumanızı tavsiye ederim. Gerçekten o kadar değil. OP hızlı bir cevap arıyorsa, muhtemelen doğru cevap olmayacaktır.
Eric Humphrey - 19: 04'de

Genel olarak en iyi uygulamaların peşindeydim. SQLServer 2000 Standard’ı yeni bir VM’e taşıdıktan sonra, bellekte önbelleğe alınmadıkları takdirde, zaman aşımına uğrayan saklı yordamları çağıran web siteleriyle ilgili sorunları çözmeye çalışıyorum; Fiziksel ve VM atanmış bellek aynı olsa bile, 4 GB.
JerryOL

1
@JerryOL: VM tahsis RAM emin olun değil (Aksi VM 4Gb tahsis fiziksel makine üzerinde 4GB sahip olarak aynı değildir) dışında belleğine ve izin verilen sanallaştırma çözümü sunduğu farklı sanal denetleyici türleri kullanırsanız en iyisinin seçildiğinden ve doğru işletim sisteminin konuk işletim sistemi tarafından kullanıldığından emin olur.
David Spillett
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.