Mütevazi olan deneyimlerden bahsetmişken paylaşmaya değer olduğunu düşünüyorum, SQL veritabanları (Sybase ve SQL sunucusu burada) ile büyük darboğaz depolama.
Ancak bence birisi yanlış varsayımlar yapmadan önce kurulumlarını ilk kez değerlendirmek adil olur. Benim durumumda, CPU kullanımı yakın zamanda CPU'yu yükseltmeyi haklı gösterecek kadar yükselmedi. Bunun yerine, tek bir sürücüden RAID 1'e ve ardından RAID 10 + 'ya 8GB'dan 16GB RAM'e kadar bir çarpıma yükselttim.
Tüm bu RAID yükseltmeleri önceki bekleme sürelerini 2 ila 6 kat azaltmaya yardımcı oldu. SSD'lere yükseltmenin daha da iyi olacağını düşünüyorum. Bunu düşünürseniz, hepsi (teorik) bant genişliğine indirgenebilir. [(RAM Hızı + RAM Boyutu + Bellek denetleyicisi) CPU'ya bağlantınız] combo'nuz, verilerinizin her zaman önbelleğe alınması gerektiğinde okuma işlemlerinde en önemli faktör olacak bir bant genişliği sınırına sahiptir, özel (RAID) depolama alanınızın bir bant genişliği sınırı vardır ( önbellek kaçırıldığında okumaları etkiler ve kızarma sırasında yazarken veya birçok müşteride bir sürü veri yazarken).
Tüm bu limitleri olabildiğince normalleştirin (kaynakları boşa harcamazsınız şekilde yaklaştırın) ve mümkün olduğu kadar yükseltin (gerektiğinde yükseltin ve yalnızca gerekirse, sistem kazanırsa kaynakların boşa harcanmasına izin vermeyin ' t Bunları kullanamazsınız çünkü başka bir darboğaz yolundadır). Sonunda, en kötü darboğazınız, özel yapılandırmanızda en az performans gösteren (en az bant genişliğine sahip) sunucu alt sistemi olacaktır.
Ayrıca yükseltme işlemi sırasında veritabanı dosyaları ve veritabanı günlük dosyaları için ayrı RAID yapılandırmaları oluşturduğumu da ekleyebilirim. Bunun nedeni, veritabanı günlük dosyalarının yazma yoğun olma eğilimindedir. Bir veritabanını bir kilitlenmeden kurtarmak için bir günlük dosyası kullanılır ve veritabanı dosyasına herhangi bir veri yazılmadan önce işlem yapılırken her zaman derhal yazılır.
Bir günlük dosyası bazı veritabanı çoğaltma sunucuları tarafından da kullanılır, ancak çoğaltmanın çoğu anında yapılmaz, bu nedenle okuma performansı etkisi burada minimumdur. En azından öyle düşünüyorum. Bu yükseltmeyi tekrar yaparken minimum kıyaslama yaptım, CPU'larını yükseltmeyi düşünmeden önce herkesin farklı yapılandırmalarını karşılaştırmasını ve önce depolamasını, ardından RAM ve ağ bağlantısını yükseltmesini öneriyorum.
5'ten fazla sunucuda daha kapsamlı yükseltmelerden sonra, deneyimimi paylaşmak için geri geldim. Kesinlikle ilk önce depolama alanı, daha sonra RAM ve daha sonra CPU'yu savunuyorum. Nedeni, sistemdeki depolama, RAM ve CPU arasındaki bant genişliklerinin en düşükten en yükseğe sıralanmasıdır. Bu yüzden bir grup sunucuyu RAID10 ve çift RAID1'den SSD'lere yükselttim.
Maliyet endişeleri nedeniyle yaptığım şekilde (yükseltmek için 20 sunucum daha var) veritabanı verilerini ve nesne dosyalarını bir SSD'ye (evet, RAID0'da yalnızca bir SSD) taşımak ve işlem günlüğü artı tempdb'yi 4xHDD RAID10'a taşımak yapılandırması. SSD'deki tempdb ile de harika sonuçlarla test ettim (aslında bazen 15 kattan daha hızlı sorgularla çok güzel sonuçlar, geçmişte dakikalar yerine birkaç saniye süren bazı raporlar sağladım), ancak daha sonra tempdb'i disk RAID10'a taşıdım çünkü SSD için yoğun yazma aşınma endişeleri.
Şimdi temelde en uzun sorguların her biri için 10-15 kat daha hızlı yanıt süreleri gözlemledim. SSD, verileri RAM'e hızlı okumak için mükemmeldir, çünkü SQL Server talep edilene kadar RAM'e veri getirmez ve elbette verilerin CPU tarafından işlenmesi için önce RAM'e yüklenmesi gerekir (daha sonra L1, L2, L3 önbelleğinde) SSD'ler bu ilk bekleme süresini büyük bir faktör kadar azaltmaya yardımcı olur. Ve SSD'ler ayrıca değiştirme sürelerini azaltmaya yardımcı olur ... RAM'in temizlenmesi ve özellikle veri tabanınız RAM'e sığmayacak kadar büyükse yeni verilerin yüklenmesi.
Sonuçta, sunucuların çalışmasına izin vermek için bir tür yavaş geçiş sürecinde birkaç ay boyunca çok memnunuz ve çalışıyoruz, böylece tüm sunucularımı bu yapılandırmaya geçirmeden önce aşınma düzeyinde bilgi toplayabiliyorum. Ve bu sadece SQL Server Express! : D - SSD'lerinizin sürekli IOPS sağlayabildiğinden emin olun, çünkü bu büyük bir fark yaratan başka bir şeydir (sadece google it). Bu yüzden Intel DC (DataCenter) serisi SSD'leri seçtim.