Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: ✔️ Linux VM'leri ✔️ Windows VM'leri ✔️ Esnek ölçek kümeleri ✔️ Tekdüzen ölçek kümeleri
Bu makalede, Azure premium depolama kullanarak yüksek performanslı uygulamalar oluşturmaya yönelik yönergeler sağlanır. Bu belgede sağlanan talimatları, uygulamanızda kullanılan teknolojilere uygulanan performans en iyi uygulamaları ile birleştirerek kullanabilirsiniz. Kılavuzları açıklamak için bu belge boyunca premium depolama üzerinde çalışan SQL Server'ı bir örnek olarak kullanıyoruz.
Bu makalede depolama katmanı için performans senaryolarını ele alırken, uygulama katmanını optimize etmeniz gerekir. Örneğin, eğer bir SharePoint Farm'ı premium depolama üzerinde barındırıyorsanız, veritabanı sunucusunu optimize etmek için bu makaleden SQL Server örneklerini kullanabilirsiniz. SharePoint Çiftliği'nin web sunucusu ve uygulama sunucusunu da en yüksek performansı elde etmek için optimize edebilirsiniz.
Bu makale, premium depolamada uygulama performansını iyileştirme hakkında aşağıdaki yaygın soruları yanıtlamaya yardımcı olur:
- Uygulamanızın performansını nasıl ölçebilirsiniz?
- Neden beklenen yüksek performansı görmüyorsunuz?
- Hangi faktörler uygulamanızın premium depolama performansını etkiliyor?
- Bu faktörler, uygulamanızın premium depolama üzerindeki performansını nasıl etkiler?
- Saniye başına giriş/çıkış işlemleri (IOPS), bant genişliği ve gecikme süresi için nasıl iyileştirme yapabilirsiniz?
Bu kılavuzları özellikle premium depolama için sağlıyoruz çünkü premium depolamada çalışan iş yükleri yüksek derecede performans hassasiyetine sahiptir. Uygun olduğu durumlarda örnekler sağlıyoruz. Altyapı hizmeti (IaaS) sanal makinelerde (VM) standart depolama diskleri üzerinde çalışan uygulamalara da bu yönergelerden bazılarını uygulayabilirsiniz.
Uyarı
Bazen bir disk performans sorunu gibi görünen şey aslında bir ağ tıkanıklığıdır. Bu durumlarda, ağ performansınızı optimize etmelisiniz.
Diskinizi test etmeyi planlıyorsanız, aşağıdaki makalelere göz atın:
- Linux için: Uygulamanızı Azure Disk Depolama üzerinde test edin
- Windows için: Bir diski karşılaştırmalı değerlendirin
Sanal makineniz hızlandırılmış ağ iletişimini destekliyorsa, etkin olduğundan emin olun. Eğer etkin değilse, hem Windows hem de Linux üzerinde dağıtılmış olan VM'lerde etkinleştirebilirsiniz.
Başlamadan önce, premium depolama alanı konusunda yeniyseniz, önce IaaS VM'ler için Azure disk türü seçin ve premium sayfa blob depolama hesapları için ölçeklenebilirlik hedefleri oku.
Uygulama performans göstergeleri
Aşağıdaki gibi performans göstergelerini kullanarak bir uygulamanın iyi çalışıp çalışmadığını değerlendiririz:
- Bir uygulamanın bir kullanıcı isteğini ne kadar hızlı işlediği.
- Bir uygulamanın işlem başına ne kadar veri işlediği.
- Bir uygulamanın belirli bir zaman diliminde kaç isteği işlediği.
- Kullanıcının, taleplerini gönderdikten sonra yanıt almak için beklemesi gereken süre.
Bu performans göstergeleri için teknik terimler IOPS, aktarım hızı veya bant genişliği ve gecikmedir.
Bu bölümde, premium depolama bağlamında yaygın performans göstergelerini tartışıyoruz. Diskler için Performans uygulama kontrol listesi bölümünde, uygulamanız için performans göstergelerini nasıl ölçebileceğinizi öğrenirsiniz. Daha sonra Uygulama performansını optimize et bölümünde, bu performans göstergelerini etkileyen faktörler ve bunları optimize etmek için öneriler hakkında bilgi edineceksiniz.
IOPS
Uygulamanızın depolama disklerine bir saniye içinde gönderdiği istek sayısı IOPS'tur. Bir giriş/çıkış işlemi okuma veya yazma, sıralı veya rastgele olabilir. Çevrimiçi işlem işleme (OLTP) uygulamaları, çevrimiçi perakende web sitesi gibi, birçok eşzamanlı kullanıcı isteğini hemen işlemelidir. Kullanıcı istekleri, uygulamanın hızlı bir şekilde işlemeye ihtiyaç duyduğu yoğun ekleme ve güncelleme içeren veritabanı işlemleridir. Bu nedenle, OLTP uygulamaları çok yüksek IOPS gerektirir.
OLTP uygulamaları, milyonlarca küçük ve rastgele G/Ç isteğini işler. Böyle bir uygulamanız varsa, IOPS için iyileştirme yapmak üzere uygulama altyapısını tasarlamanız gerekir. Daha yüksek IOPS elde etmek için dikkate alınması gereken tüm faktörler hakkında daha fazla bilgi için Optimize application performance bölümüne bakın.
Yüksek ölçekli VM'lerinize bir premium depolama diski eklediğinizde, Azure, disk özelliklerine göre belirli bir IOPS sayısını sizin için garanti eder. Örneğin, bir P50 disk 7.500 IOPS sağlar. Her yüksek ölçekli VM boyutunun sürdürebileceği belirli bir IOPS sınırı da vardır. Örneğin, Standart GS5 VM'nin 80.000 IOPS sınırı vardır.
İşlem Hacmi
Aktarım hızı veya bant genişliği, uygulamanızın belirli bir aralıkta depolama disklerine gönderdiği veri miktarıdır. Uygulamanız büyük G/Ç birim boyutlarıyla giriş/çıkış işlemleri gerçekleştiriyorsa, yüksek aktarım hızı gerektirir. Veri ambarı uygulamaları, aynı anda büyük veri bölümlerine erişen ve genellikle toplu işlemler gerçekleştiren tarama yoğun işlemler gerçekleştirmeye eğilimlidir. Başka bir deyişle, bu tür uygulamalar daha yüksek veri aktarımı gerektirir. Böyle bir uygulamanız varsa, aktarım hızı için iyileştirme yapmak üzere altyapısını tasarlamanız gerekir. Bir sonraki bölümde, bu optimizasyonu sağlamak için ayarlamanız gereken faktörleri tartışacağız.
Yüksek ölçekli bir VM'ye bir premium depolama diski eklediğinizde, Azure, bu diskin özelliklerine göre veri aktarım kapasitesini ayarlar. Örneğin, bir P50 disk 250 MB/sn disk veri akışı sağlar. Her büyük ölçekli VM boyutunun da sürdürebileceği belirli bir verim sınırı vardır. Örneğin, Standart GS5 VM'nin maksimum veri aktarım kapasitesi 2,000 MB/sn'dir.
Aşağıdaki formülde gösterildiği gibi aktarım hızı ile IOPS arasında bir ilişki vardır.
Uygulamanızın ihtiyaç duyduğu optimal veri akışı ve IOPS değerlerini belirlemek önemlidir. Birini optimize etmeye çalıştığınızda, diğeri de etkilenir. Daha fazla bilgi için IOPS ve veri aktarım hızını optimize etme hakkında Optimize application performance bölümüne bakın.
Gecikme
Gecikme, bir uygulamanın tek bir isteği alıp depolama disklerine göndermesi ve yanıtı istemciye iletmesi için geçen süredir. Gecikme süresi, IOPS ve aktarım hızına ek olarak uygulamanın performansının kritik bir ölçüsüdür. Premium depolama diskinin gecikme süresi, bir isteğin bilgilerini almak ve uygulamanıza geri iletmek için geçen süredir. Premium depolama sürekli olarak düşük gecikme süreleri sağlar. Premium diskler çoğu G/Ç işlemi için tek basamaklı milisaniyelik gecikme süreleri sağlayacak şekilde tasarlanmıştır. Premium depolama disklerinde ReadOnly ana bilgisayar önbelleğe almayı etkinleştirirseniz, çok daha düşük okuma gecikmesi elde edebilirsiniz. Daha fazla bilgi için Disk önbelleğe alma kısmına bakın.
Uygulamanızı daha yüksek IOPS ve veri akışı elde edecek şekilde optimize ettiğinizde, bu uygulamanızın gecikme süresini etkiler. Uygulama performansını ayarladıktan sonra, beklenmedik yüksek gecikme davranışlarından kaçınmak için uygulamanın gecikme süresini değerlendirin.
Bazı kontrol düzlemi işlemleri, yönetilen disklerde, diski bir depolama konumundan diğerine taşıyabilir. Veri depolama yerleri arasında diskin taşınması, verilerin arka plan kopyası aracılığıyla düzenlenir ve tamamlanması birkaç saat sürebilir. Genellikle, süre disklerdeki veri miktarına bağlı olarak 24 saatten azdır. Bu süre zarfında, uygulamanız, bazı okuma işlemlerinin orijinal konuma yönlendirilmesi ve tamamlanmasının daha uzun sürmesi nedeniyle, olağanın üzerinde okuma gecikmesi yaşayabilir.
Arka plan kopyalaması sırasında, çoğu disk türü için yazma gecikmesi üzerinde bir etkisi yoktur. Premium SSD v2 ve Ultra Diskler için, diskin 4K sektör boyutuna sahip olması durumunda daha yüksek okuma gecikmesi yaşanır. Eğer disk 512e sektör boyutuna sahipse, daha yüksek okuma ve yazma gecikmesi yaşar.
Aşağıdaki kontrol düzlemi işlemleri, diski depolama konumları arasında taşıyabilir ve gecikmenin artmasına neden olabilir.
- Depolama türünü güncelle.
- Bir diski bir VM'den başka bir VM'ye ayırın ve bağlayın.
- VHD'den yönetilen bir disk oluşturun.
- Anlık görüntüden yönetilen bir disk oluşturun.
- Yönetilmeyen diskleri yönetilen disklere dönüştürün.
Diskler için performans uygulama kontrol listesi
Premium depolamada çalışan yüksek performanslı uygulamalar tasarlamanın ilk adımı, uygulamanızın performans gereksinimlerini anlamaktır. Performans gereksinimlerini topladıktan sonra uygulamanızı en iyi performansı sağlamak için optimize edebilirsiniz.
Önceki bölümde yaygın performans göstergelerini açıkladık: IOPS, aktarım hızı ve gecikme süresi. İstenen kullanıcı deneyimini sunmak için bu performans göstergelerinden hangilerinin uygulamanız için kritik öneme sahip olduğunu belirlemeniz gerekir. Örneğin, yüksek IOPS, milyonlarca işlemi saniyede işleyen OLTP uygulamaları için önemlidir. Yüksek aktarım hızı, büyük miktarda veriyi saniyede işleyen veri ambarı uygulamaları için kritik öneme sahiptir. Gerçek zamanlı uygulamalar için son derece düşük gecikme, canlı video akış siteleri gibi yerlerde kritik öneme sahiptir.
Uygulamanızın maksimum performans gereksinimlerini yaşam süresi boyunca ölçün. Aşağıdaki örnek kontrol listesini başlangıç olarak kullanın. Normal, yoğun ve iş dışı saatlerdeki iş yükü dönemlerinde performans gereksinimlerini kaydedin. Tüm iş yükü seviyeleri için gereksinimleri belirleyerek, uygulamanızın genel performans gereksinimini belirleyebilirsiniz.
Örneğin, bir e-ticaret web sitesinin normal iş yükü, bir yıl içinde çoğu gün boyunca yaptığı işlemlerdir. Web sitesinin en yoğun iş yükü, tatil dönemlerinde veya özel satış etkinliklerinde yaptığı işlemlerdir. Uygulamanızın, normal çalışmasına göre iki veya daha fazla kat ölçeklenmesini gerektirebilen tepe iş yükü tipik olarak sınırlı bir süre için deneyimlenir. %50'lik dilim, %90'lık dilim ve %99'luk dilim gereksinimlerini belirleyin. Bu bilgi, performans gereksinimlerinde herhangi bir aykırı değeri filtrelemeye yardımcı olur ve çabalarınızı doğru değerler için optimize etmeye odaklayabilirsiniz.
Uygulama performans gereksinimleri kontrol listesi
Performans gereksinimleri | 50 yüzdelik dilim | 90 persentil | 99. yüzdelik dilim |
---|---|---|---|
Saniye başına maksimum işlem | |||
% Okuma işlemleri | |||
% Yazma işlemleri | |||
% Rastgele işlemler | |||
% Sıralı işlemler | |||
G/Ç istek boyutu | |||
Ortalama veri gönderim hızı | |||
Aktarım hızı üst sınırı | |||
En düşük gecikme süresi | |||
Ortalama gecikme | |||
Maksimum CPU | |||
Ortalama CPU | |||
Azami bellek kapasitesi | |||
Ortalama bellek | |||
Kuyruk derinliği |
Uyarı
Uygulamanızın beklenen gelecekteki büyümesine göre bu sayıları ölçeklendirmeyi düşünün. Büyümeyi önceden planlamak iyi bir fikirdir, çünkü daha sonra performansı artırmak için altyapıyı değiştirmek daha zor olabilir.
Mevcut bir uygulamanız varsa ve premium depolamaya geçmek istiyorsanız, önce mevcut uygulama için önceki kontrol listesini oluşturun. Ardından, uygulamanızın bir prototipini premium depolamaya kurun ve Uygulama performansını optimize etme bölümünde tanımlanan kılavuzlar temelinde uygulamanızı tasarlayın. Sonraki makale, performans ölçümlerini toplamak için kullanabileceğiniz araçları tanımlar.
Uygulama performansı gereksinimlerini ölçmek için sayaçlar
Uygulamanızın performans gereksinimlerini ölçmenin en iyi yolu, sunucunun işletim sistemi tarafından sağlanan -monitoring araçlarını kullanmaktır PerfMon
. Windows için PerfMon
ve Linux için iostat
kullanabilirsiniz. Bu araçlar, önceki bölümde açıklanan her bir ölçümle ilgili sayaçları yakalar. Uygulamanız normal, yoğun ve saatlik iş yüklerini çalıştırırken bu sayaçların değerlerini yakalamanız gerekir.
Sunucunuzun işlemcisi, belleği, ve her bir mantıksal diski ile fiziksel diski için PerfMon
sayaçlar mevcuttur. VM ile premium depolama disklerini kullandığınızda, fiziksel disk sayaçları her bir premium depolama diski için ve mantıksal disk sayaçları premium depolama diskleri üzerinde oluşturulan her bir birim için geçerlidir. Uygulama iş yükünüzün barındığı disklerin değerlerini kaydetmelisiniz. Mantıksal ve fiziksel diskler arasında birebir eşleme varsa, fiziksel disk sayaçlarına başvurabilirsiniz. Aksi takdirde, mantıksal disk sayaçlarına başvurun.
Linux'te, iostat
komutu bir CPU ve disk kullanım raporu oluşturur. Disk kullanım raporu, her fiziksel cihaz veya bölüm için istatistikler sağlar. Eğer verilerini ve günlüklerini ayrı disklerde barındıran bir veritabanı sunucunuz varsa, bu verileri her iki disk için toplayın. Aşağıdaki tablo, diskler, işlemciler ve bellek için sayaçları açıklamaktadır.
tezgah / sayaç | Açıklama | PerfMon | iostat |
---|---|---|---|
IOPS veya işlem/saniye | Bellek diskine/saniye yayımlanan I/O isteklerinin sayısı | Disk okuma/saniye Disk yazma/sn |
Tps r/sn w/sn |
Disk okuma ve yazma işlemleri | Diskte gerçekleştirilen okuma ve yazma işlemlerinin yüzdesi | Disk okuma süresi % % Disk yazma süresi |
r/s w/sn |
İşlem Hacmi | Saniyede diske okunan veya yazılan veri miktarı | Disk okuma baytları/sn Disk yazma bayt/sn |
kB_read/sn kB_wrtn/s |
Gecikme | Bir disk G/Ç isteğini tamamlamak için toplam süre | Ortalama disk saniye/okuma Ortalama disk sn/yazma |
beklemek svctm |
G/Ç boyutu | Depolama disklerine yönelik G/Ç isteklerinin boyutu | Ortalama disk baytları/okuma Ortalama disk bayt/yazma |
avgrq-sz |
Kuyruk derinliği | Depolama diskinden okunmayı veya diske yazılmayı bekleyen bekleyen G/Ç isteklerinin sayısı | Güncel disk kuyruk uzunluğu | avgqu-sz |
Azami bellek kapasitesi | Uygulamanın sorunsuz çalışması için gereken bellek miktarı | % Kullanılan Kaydedilmiş bayt sayısı | Kullan vmstat |
Maksimum CPU | Uygulamanın sorunsuz çalışması için gereken CPU miktarı | % İşlemci süresi | %kullanım oranı |
iostat ve PerfMon hakkında daha fazla bilgi edinin.
Uygulama performansını optimize et
Bir uygulamanın premium depolama üzerinde çalışırken performansını etkileyen ana faktörler, I/O isteklerinin niteliği, VM boyutu, disk boyutu, disk sayısı, disk önbellekleme, çoklu iş parçacığı kullanımı ve kuyruk derinliğidir. Sistemin sunduğu düğmelerle bu faktörlerin bazılarını kontrol edebilirsiniz.
Çoğu uygulama, I/O boyutunu ve kuyruk derinliğini doğrudan değiştirmenize izin vermeyebilir. Örneğin, SQL Server kullanıyorsanız, I/O boyutunu ve kuyruk derinliğini seçemezsiniz. SQL Server, en iyi performansı elde etmek için en uygun I/O boyutu ve kuyruk derinliği değerlerini seçer. Uygulama performansınıza etkisi olan her iki tür faktörün de sonuçlarını anlamak, performans ihtiyaçlarını karşılamak için uygun kaynakları sağlamanız açısından önemlidir.
Bu bölüm boyunca, uygulamanızın performansını ne kadar optimize etmeniz gerektiğini belirlemek için oluşturduğunuz uygulama gereksinimleri kontrol listesine başvurun. Kontrol listesine göre, bu bölümdeki hangi faktörleri ayarlamanız gerektiğini belirleyebilirsiniz.
Her bir faktörün uygulama performansınıza etkilerini gözlemlemek için, uygulama yapılandırmanızda karşılaştırma araçlarını çalıştırın. Windows ve Linux sanal makinelerinde yaygın kıyaslama araçlarını çalıştırma adımları için, bu belgenin sonundaki kıyaslama makalelerine bakın.
IOPS, veri aktarım hızı ve gecikmeyi hızlıca optimize edin
Aşağıdaki tablo, performans faktörlerini ve IOPS, veri aktarım hızı ve gecikmeyi optimize etmek için gereken adımları özetlemektedir. Bu özetin ardından gelen bölümler, her faktörü daha ayrıntılı bir şekilde açıklamaktadır.
Azure'daki sanal makinelerin boyutları ve her tür VM için mevcut IOPS, bant genişliği ve gecikme süreleri hakkında daha fazla bilgi için Azure'daki sanal makineler için boyutlar sayfasına bakın.
Performans faktörleri | IOPS | İşlem Hacmi | Gecikme |
---|---|---|---|
Örnek senaryo | Çok yüksek saniye başına işlem oranı gerektiren kurumsal OLTP uygulaması. | Büyük miktarda veri işleyen Kurumsal Veri Ambarı uygulaması. | Gerçek zamanlıya yakın uygulamalar, çevrimiçi oyunlar gibi, kullanıcı taleplerine anında yanıt gerektirir. |
Performans faktörleri | |||
G/Ç boyutu | Daha küçük I/O boyutu, daha yüksek IOPS sağlar. | Daha büyük G/Ç boyutu daha yüksek verim sağlar. | |
VM boyutu | Uygulama gereksinimlerinizden daha yüksek IOPS sunan bir VM boyutu kullanın. | Uygulama gereksiniminizden daha yüksek bir veri aktarım sınırına sahip bir VM boyutu kullanın. | Uygulama gereksinimlerinizden daha büyük ölçek sınırları sunan bir VM boyutu kullanın. |
Disk boyutu | Uygulamanızın gereksiniminden daha fazla IOPS sunan bir disk boyutu kullanın. | Uygulamanızın gereksinimlerinden daha yüksek bir veri aktarım sınırına sahip disk boyutunu kullanın. | Uygulama gereksinimlerinizin ötesinde ölçek sınırları sunan bir disk boyutu kullanın. |
VM ve disk ölçek sınırları | Seçilen VM boyutunun IOPS sınırı, ona bağlı olan depolama disklerinin toplam IOPS değerinden daha büyük olmalıdır. | Seçilen VM boyutunun geçiş hızı sınırı, ona bağlı olan premium depolama disklerinden kaynaklanan toplam geçiş hızından daha büyük olmalıdır. | Seçilen VM boyutunun ölçek sınırları, ekli premium depolama disklerinin toplam ölçek sınırlarından büyük olmalıdır. |
Disk önbelleği | Okuma ağırlıklı işlemleri olan premium depolama disklerinde daha yüksek okuma IOPS elde etmek için ReadOnly önbelleği etkinleştirin. | Premium depolama disklerinde okuma ağırlıklı işlemler için ReadOnly önbelleğini etkinleştirerek çok düşük okuma gecikmelerine ulaşın. | |
Disk dilimleme | Birleşik daha yüksek IOPS ve veri aktarım limiti elde etmek için birden çok disk kullanın ve bunları birlikte şeritleyin. Her VM başına toplam limit, bağlı premium disklerin toplam limitlerinden daha yüksek olmalıdır. | ||
Şerit boyutu | OLTP uygulamalarında görülen rastgele küçük I/O modelleri için daha küçük şerit boyutu. Örneğin, bir SQL Server OLTP uygulaması için 64 KB şerit boyutu kullanın. | Veri ambarı uygulamalarında görülen ardışık büyük G/Ç deseni için daha büyük şerit boyutu. Örneğin, bir SQL Server veri ambarı uygulaması için 256 KB'lık bir şerit boyutu kullanın. | |
Çoklu iş parçacığı kullanımı | Çoklu iş parçacığı kullanarak daha yüksek sayıda isteği premium depolamaya iletip daha yüksek IOPS ve veri akış hızına ulaşın. Örneğin, SQL Server'da, SQL Server'a daha fazla CPU ayırmak için yüksek bir MAXDOP değeri ayarlayın. | ||
Kuyruk derinliği | Daha büyük kuyruk derinliği daha yüksek IOPS verir. | Daha büyük kuyruk derinliği daha yüksek verim sağlar. | Daha küçük kuyruk derinliği daha düşük gecikme süreleri verir. |
I/O isteklerinin doğası
G/Ç isteği, uygulamanızın gerçekleştirdiği bir giriş/çıkış işlemi birimidir. G/Ç isteklerinin( rastgele veya sıralı, okuma veya yazma, küçük veya büyük) doğasını belirlemek, uygulamanızın performans gereksinimlerini belirlemenize yardımcı olur. Uygulama altyapınızı tasarlarken doğru kararlar verebilmek için I/O isteklerinin doğasını anlamak önemlidir. Giriş/Çıkışlar en iyi performansı elde etmek için eşit olarak dağıtılmalıdır.
G/Ç boyutu en önemli faktörlerden biridir. Uygulamanız tarafından oluşturulan giriş/çıkış işlemi isteğinin boyutu, I/O boyutudur. G/Ç boyutu, özellikle uygulamanın ulaşabileceği IOPS ve bant genişliği üzerinde performansı önemli ölçüde etkiler. Aşağıdaki formülde IOPS, G/Ç boyutu ve bant genişliği/aktarım hızı arasındaki ilişki gösterilmektedir.
Bazı uygulamalar, I/O boyutunu değiştirmenize izin verirken, bazı uygulamalar izin vermez. Örneğin, SQL Server en uygun G/Ç boyutunu kendisi belirler ve kullanıcıların bunu değiştirmesi için herhangi bir ayar sunmaz. Öte yandan Oracle, veritabanının G/Ç isteği boyutunu yapılandırmak için kullanabileceğiniz DB_BLOCK_SIZE adlı bir parametre sağlar.
Bir uygulama kullanıyorsanız ve bu uygulama I/O boyutunu değiştirmenize izin vermiyorsa, bu makaledeki yönergeleri kullanarak uygulamanızla en alakalı performans KPI'sını optimize edin. Örneğin:
- Bir OLTP uygulaması milyonlarca küçük ve rastgele I/O isteği oluşturur. Bu tür G/Ç isteklerini işlemek için daha yüksek IOPS elde etmek için uygulama altyapınızı tasarlamanız gerekir.
- Veri ambarı uygulaması büyük ve sıralı G/Ç istekleri oluşturur. Bu tür G/Ç isteklerini işlemek için daha yüksek bant genişliği veya aktarım hızı elde etmek için uygulama altyapınızı tasarlamanız gerekir.
Bir uygulama kullanıyorsanız ve bu uygulama I/O boyutunu değiştirmenize izin veriyorsa, diğer performans kılavuzlarının yanı sıra I/O boyutu için şu kuralı kullanın:
- Daha küçük G/Ç boyutu ile daha yüksek IOPS elde edin. Örneğin, bir OLTP uygulaması için 8 KB.
- Daha büyük I/O boyutu, daha yüksek bant genişliği/çıktı elde etmek için. Örneğin, veri ambarı uygulaması için 1,024 KB.
İşte uygulamanız için IOPS ve veri aktarım hızı/bant genişliğini nasıl hesaplayabileceğinize dair bir örnek.
Bir P30 disk kullanan bir uygulamayı düşünün. Bir P30 diskin ulaşabileceği maksimum IOPS ve veri işleme / bant genişliği sırasıyla 5.000 IOPS ve 200 MB/sn'dir. Uygulamanız P30 diskten maksimum IOPS gerektiriyorsa ve 8 KB gibi küçük bir I/O boyutu kullanıyorsanız, elde edebileceğiniz bant genişliği 40 MB/sn'dir. Uygulamanızın maksimum veri aktarım hızı/bant genişliği gereksinimi varsa ve 1,024 KB gibi daha büyük bir I/O boyutu kullanıyorsanız, elde edilen IOPS daha az olur, örneğin 200 IOPS.
Uygulamanızın IOPS ve veri yolu/bant genişliği gereksinimlerini karşılayacak şekilde G/Ç boyutunu ayarlayın. Aşağıdaki tablo, bir P30 disk için farklı G/Ç boyutlarını ve bunlara karşılık gelen IOPS ve bant genişliğini özetlemektedir.
Başvuru gereksinimi | G/Ç boyutu | IOPS | Verim/Bant Genişliği |
---|---|---|---|
En Yüksek IOPS | 8 KB | 5.000 | 40 MB/sn |
Aktarım hızı üst sınırı | 1.024 KB | 200 | 200 MB/sn |
Maksimum bant genişliği + yüksek IOPS | 64 KB | 3,200 | 200 MB/sn |
Maksimum IOPS ile yüksek bant genişliği | 32 KB | 5.000 | 160 MB/sn |
Tek bir premium depolama diskine ait maksimum değerden daha yüksek IOPS ve bant genişliği elde etmek için, birden fazla premium diski bir araya getirip birleştirerek kullanın. Örneğin, iki P30 diski şeritleyerek toplamda 10.000 IOPS veya 400 MB/saniye toplam veri aktarım hızı elde edebilirsiniz. Bir sonraki bölümde açıklandığı gibi, birleştirilen disk IOPS ve veri aktarım hızını destekleyen bir VM boyutu kullanmalısınız.
Uyarı
IOPS veya bant genişliğini artırdığınızda, diğerinin de arttığını göreceksiniz. Birini artırdığınızda diskin veya VM'nin aktarım hızına veya IOPS sınırlarına ulaşmadığınızdan emin olun.
Uygulama performansı üzerindeki G/Ç boyutunun etkilerini görmek için, sanal makinenizde ve disklerinizde karşılaştırma araçlarını çalıştırabilirsiniz. Birden çok test çalıştırması oluşturun ve efekti görmek için her çalıştırma için farklı G/Ç boyutu kullanın. Daha fazla bilgi için, bu belgenin sonunda yer alan karşılaştırma makalelerine bakın.
Yüksek Ölçekli VM Boyutları
Bir uygulama tasarlamaya başladığınızda yapmanız gereken ilk şeylerden biri, uygulamanızı barındıracak bir VM seçmektir. Yüksek ölçekli sanal makine boyutları ile gelen premium depolama, daha yüksek işlem gücü ve yüksek yerel disk I/O performansı gerektiren uygulamaları çalıştırabilir. Bu sanal makineler, daha hızlı işlemciler, daha yüksek bir bellek-çekirdek oranı ve yerel disk için bir katı hal sürücüsü (SSD) sağlar. Premium depolamayı destekleyen yüksek ölçekli sanal makineler (VM) örnekleri DS ve GS serisi sanal makinelerdir.
Yüksek ölçekli VM'ler, farklı sayıda CPU çekirdeği, bellek, işletim sistemi ve geçici disk boyutlarıyla farklı boyutlarda sunulmaktadır. Her VM boyutunun ayrıca VM'ye ekleyebileceğiniz en fazla veri diski sayısı da vardır. Seçilen VM boyutu uygulamanız için ne kadar işlem, bellek ve depolama kapasitesinin kullanılabilir olduğunu etkiler. Bu aynı zamanda hesaplama ve depolama maliyetini de etkiler. Örneğin, aşağıdaki özellikler DS serisi ve GS serisindeki en büyük VM boyutu içindir.
VM boyutu | CPU çekirdekleri | Hafıza | VM disk boyutları | Maksimum veri diskleri | Önbellek boyutu | IOPS | Bant genişliği önbellek G/Ç sınırları |
---|---|---|---|---|---|---|---|
Standard_DS14 | 16 | 112 GB | İşletim sistemi = 1.023 GB Yerel SSD = 224 GB |
32 | 576 GB | 50.000 IOPS 512 MB/sn |
4,000 IOPS ve 33 MB/sn |
Standard_GS5 | 32 | 448 GB | İşletim sistemi = 1.023 GB Yerel SSD = 896 GB |
64 | 4224 GB | 80.000 IOPS 2.000 MB/sn |
5,000 IOPS ve 50 MB/sn |
Tüm mevcut Azure VM boyutlarının tam listesini görüntülemek için, Azure'da sanal makineler için boyutlar başlığına bakın. İstediğiniz uygulama performans gereksinimlerini karşılayacak ve ölçeklendirebilecek bir VM boyutu seçin. VM boyutlarını seçerken aşağıdaki önemli hususları da göz önünde bulundurun.
Ölçek sınırları
Her VM için ve her disk için maksimum IOPS limitleri farklıdır ve birbirinden bağımsızdır. Uygulamanın, VM ve ona bağlı premium disklerin sınırları dahilinde IOPS yönettiğinden emin olun. Aksi halde, uygulama performansı sınırlandırılır.
Örneğin, bir uygulama gereksinimi maksimum 4.000 IOPS olabilir. Bu seviyeye ulaşmak için, bir DS1 VM üzerinde bir P30 disk oluşturursunuz. P30 diski, 5,000'e kadar IOPS (Girdi/Çıktı İşlemleri Saniye Başı) sağlayabilir. Ancak, DS1 VM 3.200 IOPS ile sınırlıdır. Yani, uygulama performansı, VM sınırı olan 3.200 IOPS ile sınırlıdır ve performans düşmektedir. Bu durumu önlemek için, hem uygulama gereksinimlerini karşılayan bir VM hem de disk boyutu seçin.
İşletme maliyeti
Çoğu durumda, premium depolama kullanarak işletme maliyetinizin genel olarak standart depolamadan daha düşük olması mümkündür.
Örneğin, 16,000 IOPS gerektiren bir uygulamayı düşünün. Bu performansa ulaşmak için, maksimum 16.000 IOPS sağlayabilecek, 32 standart depolama 1 TB disk kullanarak Standard_D14 Azure IaaS VM ihtiyacınız var. Her 1 TB'lik standart depolama diski, maksimum 500 IOPS gerçekleştirebilir.
- Bu VM'nin aylık tahmini maliyeti $1,570'dir.
- 32 standart depolama disklerinin aylık maliyeti 1,638 dolar.
- Tahmini toplam aylık maliyet 3.208 $'dır.
Uygulamayı premium depolama üzerinde barındırdıysanız, daha küçük bir VM boyutuna ve daha az premium depolama diskine ihtiyacınız olur, bu da toplam maliyeti azaltır. Standard_DS13 VM, dört P30 diski kullanarak 16.000 IOPS gereksinimini karşılayabilir. DS13 VM'nin maksimum IOPS değeri 25.600'dür ve her P30 disk maksimum 5.000 IOPS'a sahiptir. Genel olarak, bu yapılandırma 5.000 x 4 = 20.000 IOPS elde edebilir.
- Bu VM'nin tahmini aylık maliyeti 1.003 ABD dolarıdır.
- Dört adet P30 premium depolama disklerinin aylık maliyeti $544,34'tür.
- Tahmini toplam aylık maliyet $1.544'dir.
Bu senaryonun maliyet dağılımını standart ve premium depolama için özetleyen aşağıdaki tabloyu inceleyebilirsiniz.
Aylık maliyet | Standart | Üst Düzey |
---|---|---|
Aylık VM maliyeti | 1.570,58 ABD doları (Standard_D14) | 1.003,66 ABD doları (Standard_DS13) |
Disklerin aylık maliyeti | 1.638,40 ABD doları (32 x 1 TB disk) | 544,34 ABD doları (4 x P30 disk) |
Aylık toplam maliyet | 3.208,98 ABD doları | $1,544,34 |
Linux dağıtımları
Premium depolama ile Windows ve Linux çalıştıran sanal makineler için aynı performans seviyesini elde edersiniz. Çeşitli Linux dağıtımlarını destekliyoruz. Daha fazla bilgi için Linux distributions endorsed on Azure belgesine bakın.
Farklı dağıtımlar, farklı iş yükü türleri için daha uygundur. Çalışma yükünüzün çalıştığı dağıtıma bağlı olarak farklı performans seviyeleri görüyorsunuz. Linux dağıtımlarını uygulamanızla test edin ve en iyi çalışanı seçin.
Linux'i premium depolama ile çalıştırdığınızda, yüksek performans sağlamak için gereken sürücülerle ilgili en son güncellemeleri kontrol edin.
Premium depolama disk boyutları
Premium depolama, ihtiyaçlarınıza en iyi şekilde uygun olanı seçebilmeniz için çeşitli boyutlar sunar. Her disk boyutunun IOPS, bant genişliği ve depolama için farklı bir ölçek sınırı vardır. Uygulama gereksinimlerine ve büyük ölçekli VM boyutuna bağlı olarak doğru premium depolama disk boyutunu seçin. Aşağıdaki tablo, disk boyutlarını ve yeteneklerini göstermektedir. P4, P6, P15, P60, P70 ve P80 boyutları şu anda yalnızca yönetilen diskler için desteklenmektedir.
Premium SSD boyutları | P1 | P2 | P3 | P4 | P6 | P10 | P15 | P20 | P30 | P40 | P50 | P60 | P70 | P80 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GiB'de disk boyutu | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1,024 | 2,048 | 4,096 | 8,192 | 16,384 | 32.767 |
Disk başına temel sağlanan IOPS | 120 | 120 | 120 | 120 | 240 | beş yüz | 1.100 | 2.300 | 5.000 | 7,500 | 7,500 | 16.000 | 18.000 | 20,000 |
**Disk başına genişletilmiş sağlanan IOPS | Mevcut Değil | Mevcut Değil | Mevcut Değil | Mevcut Değil | Mevcut Değil | Mevcut Değil | Mevcut Değil | Mevcut Değil | 8,000 | 16.000 | 20,000 | 20,000 | 20,000 | 20,000 |
Disk başına temel sağlanan aktarım hızı | 25 MB/sn | 25 MB/sn | 25 MB/sn | 25 MB/sn | 50 MB/sn | 100 MB/sn | 125 MB/sn | 150 MB/sn | 200 MB/sn | 250 MB/sn | 250 MB/sn | 500 MB/sn | 750 MB/sn | 900 MB/sn |
**Disk başına genişletilmiş sağlanan aktarım hızı | Mevcut Değil | Mevcut Değil | Mevcut Değil | Mevcut Değil | Mevcut Değil | Mevcut Değil | Mevcut Değil | Mevcut Değil | 300 MB/sn | 600 MB/sn | 900 MB/sn | 900 MB/sn | 900 MB/sn | 900 MB/sn |
Disk başına maksimum burst IOPS | 3.500 | 3.500 | 3.500 | 3.500 | 3.500 | 3.500 | 3.500 | 3.500 | 30,000* | 30,000* | 30,000* | 30,000* | 30,000* | 30,000* |
Disk başına maksimum seri aktarım hızı | 170 MB/sn | 170 MB/sn | 170 MB/sn | 170 MB/sn | 170 MB/sn | 170 MB/sn | 170 MB/sn | 170 MB/sn | 1.000 MB/sn* | 1.000 MB/sn* | 1.000 MB/sn* | 1.000 MB/sn* | 1.000 MB/sn* | 1.000 MB/sn* |
Maksimum patlama süresi | 30 dk | 30 dk | 30 dk | 30 dk | 30 dk | 30 dk | 30 dk | 30 dk | Sınırsız* | Sınırsız* | Sınırsız* | Sınırsız* | Sınırsız* | Sınırsız* |
Rezervasyon için uygun | Hayı | Hayı | Hayı | Hayı | Hayı | Hayı | Hayı | Hayı | Evet, bir yıla kadar | Evet, bir yıla kadar | Evet, bir yıla kadar | Evet, bir yıla kadar | Evet, bir yıla kadar | Evet, bir yıla kadar |
Yalnızca isteğe bağlı patlama etkinleştirilen diskler için geçerlidir.
Yalnızca performans artışı etkinleştirilmiş diskler için geçerlidir.
Seçtiğiniz disklerin sayısı, seçilen disk boyutuna bağlıdır. Uygulama gereksiniminizi karşılamak için tek bir P50 disk veya birden fazla P10 disk kullanabilirsiniz. Kararınızı verirken burada listelenen hususları göz önünde bulundurun.
Ölçek sınırları (IOPS ve throughput)
Her premium disk boyutunun IOPS ve aktarım hızı sınırları VM ölçek sınırlarından farklıdır ve birbirinden bağımsızdır. Disklerden gelen toplam IOPS ve bant genişliğinin, seçilmiş olan VM boyutunun ölçek sınırları içinde olduğundan emin olun.
Örneğin, bir uygulama gereksinimi en fazla 250 MB/sn aktarım hızına sahipse ve tek P30 diskli bir DS4 VM kullanıyorsanız, DS4 VM 256 MB/sn'ye kadar aktarım hızı verebilir. Ancak, tek bir P30 disk, 200 MB/saniye veri aktarım sınırına sahiptir. Bu nedenle, uygulama disk sınırı nedeniyle 200 MB/saniyede sınırlıdır. Bu sınırı aşmak için, VM'ye birden fazla veri diski sağlayın veya disklerinizi P40 ya da P50 olacak şekilde yeniden boyutlandırın.
Uyarı
Önbellekten sunulan okuma işlemleri, disk IOPS ve veri aktarım hızına dahil edilmez, bu yüzden disk sınırlarına tabi değildirler. Önbellek, her Sanal Makine için ayrı Giriş/Çıkış İşlemleri ve bant genişliği sınırlarına sahiptir.
Örneğin, başlangıçta okuma ve yazma işlemleri sırasıyla 60 MB/sn ve 40 MB/sn'liktir. Zamanla, önbellek ısınır ve giderek daha fazla veriyi önbellekten okumaya hizmet eder. tr-TR: Ardından, diskten daha yüksek yazma verimi elde edebilirsiniz.
Disk sayısı
Uygulama gereksinimlerini değerlendirerek ihtiyaç duyduğunuz disk sayısını belirleyin. Her VM boyutunun, VM'ye ekleyebileceğiniz disklerin sayısı üzerinde bir sınırlaması vardır. Bu miktar, genellikle çekirdek sayısının iki katıdır. Seçtiğiniz VM boyutunun gerekli disk sayısını destekleyebildiğinden emin olun.
Premium depolama disklerinin standart depolama disklerine kıyasla daha yüksek performans özelliklerine sahip olduğunu unutmayın. Uygulamanızı standart depolamayı kullanarak bir Azure IaaS VM'sinden premium depolamaya geçiriyorsanız, uygulamanız için aynı veya daha yüksek performans elde etmek için büyük olasılıkla daha az premium diske ihtiyacınız vardır.
Disk önbelleği
Premium depolama kullanan yüksek ölçekli VM'lerin BlobCache adlı çok katmanlı önbelleğe alma teknolojisi vardır. BlobCache , önbelleğe alma için konak RAM ve yerel SSD'nin bir bileşimini kullanır. Bu önbellek Standart HDD, Standart SSD ve Premium SSD ile yönetilen disklerde kullanılabilir. Varsayılan olarak, bu önbellek ayarı işletim sistemi diskleri için ReadWrite ve veri diskleri için ReadOnly olarak ayarlanır. Disk önbelleklemesi etkinleştirildiğinde, yüksek ölçekli VM'ler (Sanal Makineler), alt disk performansını aşan son derece yüksek performans seviyelerine ulaşabilirler.
Uyarı
Disk önbelleğe alma, 4 TiB ve üzeri diskler için desteklenmemektedir. VM'inize birden fazla disk takılıysa, her biri 4 TiB'den küçük olan diskler önbelleğe almayı destekler.
Bir Azure diskinin önbellek ayarını değiştirmek, hedef diski ayırıp yeniden ekler. Eğer işletim sistemi diskiyse, sanal makine yeniden başlatılır. Disk önbelleği ayarını değiştirmeden önce bu kesintiden etkilenebilecek tüm uygulamaları ve hizmetleri durdurun. Bu önerilere uymamak, veri bozulmasına yol açabilir.
BlobCache'in nasıl çalıştığını daha iyi öğrenmek için Azure premium storage blog yazısını inceleyin.
Doğru disk grubunda önbelleği etkinleştirmek önemlidir. Bir diskte disk önbelleğe almayı etkinleştirip etkinleştirmemek, diskin işlediği iş yükü desenine bağlıdır. Aşağıdaki tablo, işletim sistemi ve veri diskleri için varsayılan önbellek ayarlarını göstermektedir.
Disk türü | Varsayılan önbellek ayarı |
---|---|
İşletim sistemi diski | OkumaYazma |
Veri sürücüsü | Yalnızca Okunur |
Veri diskleri için aşağıdaki disk önbelleği ayarlarını kullanmanız gerekir:
Disk önbelleğe alma ayarları | Bu ayarı ne zaman kullanmanız gerektiğine dair öneri |
---|---|
Hiç kimse | Yalnızca yazma ve yazma ağırlıklı diskler için ana makine önbelleğini None olarak yapılandırın. |
Yalnızca Okunur | Salt okunur ve okuma-yazma diskler için host önbelleğini 'SaltOkunur' olarak yapılandırın. |
OkumaYazma | ReadWrite olarak ana bilgisayar önbelleğini yalnızca uygulamanız, gerektiğinde önbelleğe alınmış verileri kalıcı disklere yazmayı doğru bir şekilde işliyorsa yapılandırın. |
Yalnızca Okunur
Veri disklerinde Salt Okunur önbellekleme yapılandırarak, iki nedenle uygulamanız için düşük okuma gecikmesi ve çok yüksek okuma IOPS ve veri akışı elde edebilirsiniz:
- Önbellekten yapılan okumalar, VM belleğinde ve yerel SSD'de bulunması nedeniyle, Azure Blob Storage'da bulunan veri diskinden yapılan okumalarla kıyaslandığında daha hızlıdır.
- Depolama, önbellekten disk IOPS'sine ve aktarım hızına yönelik olarak sunulan okumaları saymaz. Bu nedenle, uygulamanız daha yüksek toplam IOPS ve veri aktarım hızı elde edebilir.
OkumaYazma
Varsayılan olarak, işletim sistemi disklerinde ReadWrite önbellekleme etkinleştirilmiştir. Veri disklerinde ReadWrite önbellekleme desteğini de yakın zamanda ekledik. ReadWrite önbellekleme kullanıyorsanız, verileri önbellekten kalıcı disklere yazmanın uygun bir yoluna sahip olmalısınız. Örneğin, SQL Server veriyi önbellekten kalıcı depolama disklerine kendi başına yazmayı yönetir. ReadWrite önbelleğini, gerekli verileri kalıcı hale getiremeyen bir uygulamayla kullanmak, VM çökerse veri kaybına yol açabilir.
Hiç kimse
Şu anda, None yalnızca veri disklerinde desteklenmektedir. İşletim sistemi disklerinde desteklenmez. Eğer bir OS diskine Hiçbiri ayarlarsanız, bu ayar içsel olarak geçersiz kılınarak Salt Okunur olarak ayarlanır.
Bir örnek olarak, aşağıdaki adımları izleyerek, premium depolama etkin VMs üzerinde çalışan SQL Server'a bu yönergeleri uygulayabilirsiniz:
- Veri dosyalarına ev sahipliği yapan Standart HDD, Standart SSD veya Premium SSD yönetilen disklerde ReadOnly önbelleğini yapılandırın.
- Önbellekten hızlı okuma, verilerin doğrudan veri disklerinden ziyade önbellekten daha hızlı alındığı için SQL Server sorgu süresini düşürür.
- Okumaları önbellekten sunma, veri disklerinden daha fazla aktarım hızı olduğu anlamına gelir. SQL Server, veri sayfalarını alma ve yedekleme/geri yükleme, toplu yüklemeler ve dizin yeniden yapılandırmaları gibi diğer işlemler için bu ekstra aktarım oranını kullanabilir.
- Günlük dosyalarına ev sahipliği yapan premium depolama disklerindeki None önbelleği yapılandırın.
- Günlük dosyaları öncelikle yazma ağırlıklı işlemler içerir, bu yüzden ReadOnly önbelleğinden fayda sağlamazlar.
Linux VM'lerde performansı optimize et
Tüm Premium SSD'ler veya Ultra Diskler için, verileri kaybedebilecek önbellek olmadığı bilindiğinde performansı artırmak için diskteki dosya sistemleri için engelleri devre dışı bırakabilirsiniz. Azure disk önbelleği ReadOnly veya None olarak ayarlandıysa, engelleri devre dışı bırakabilirsiniz. Ancak önbelleğe alma ReadWrite olarak ayarlandıysa, yazma dayanıklılığını sağlamak için engeller etkin kalmalıdır. Engeller genellikle varsayılan olarak etkinleştirilir, ancak dosya sistemi türüne bağlı olarak aşağıdaki yöntemlerden birini kullanarak engelleri devre dışı bırakabilirsiniz.
- reiserFS: Bariyerleri devre dışı bırakmak için barrier=none bağlama seçeneğini kullanın. Bariyerleri açıkça etkinleştirmek için barrier=flush kullanın.
- ext3/ext4: Barajları devre dışı bırakmak için barrier=0 montaj seçeneğini kullanın. Engelleri açıkça etkinleştirmek için barrier=1 kullanın.
- XFS: Bariyerleri devre dışı bırakmak için nobarrier bağlama seçeneğini kullanın. Engelleri açıkça etkinleştirmek için bariyeri kullanın. Ana linux çekirdeğinin 4.10 sürümünden itibaren XFS dosya sisteminin tasarımı her zaman dayanıklılık sağlar. Engelleri devre dışı bırakmanın hiçbir etkisi yoktur ve nobarrier seçeneği kullanım dışıdır. Ancak, bazı Linux dağıtımları değişiklikleri daha erken bir çekirdek sürümüne sahip bir dağıtım sürümüne geri aktarmış olabilir. Dağıtım ve sürüm durumunu öğrenmek için dağıtım satıcınızla iletişime geçin.
Disk dilimleme
Yüksek ölçekli bir VM birkaç premium depolama kalıcı diski ile bağlandığında, bu diskler IOP'ları, bant genişliğini ve depolama kapasitesini birleştirmek için birleştirilebilir.
Windows'da Storage Spaces kullanarak diskleri birleştirerek veri parçalama işlemi yapabilirsiniz. Her diski için havuzda bir sütun yapılandırmalısınız. Aksi takdirde, diskler arasındaki trafik dağılımının eşit olmaması nedeniyle şerit hacminin genel performansı beklenenden düşük olabilir.
Sunucu Yöneticisi kullanıcı arabirimini kullanarak, şeritli birim için en fazla 8
sütun sayısını ayarlayabilirsiniz. Sekizden fazla disk eklerken, birimi oluşturmak için PowerShell'i kullanın. PowerShell kullanarak sütun sayısını disk sayısına eşitleyebilirsiniz. Örneğin, tek bir şerit kümesinde 16 disk varsa, PowerShell cmdlet'inin parametresinde NumberOfColumns
New-VirtualDisk
sütunları belirtin16
.
Linux üzerinde diskleri birleştirmek için MDADM aracını kullanın. Linux'ta diskleri ayırma adımları için bkz. Linux'ta Yazılım RAID'ini Yapılandırma.
Şerit boyutu
Disk şeritlemede önemli bir yapılandırma şerit boyutudur. Şerit boyutu veya blok boyutu, bir uygulamanın bir şeritli hacimde adresleyebileceği en küçük veri parçasıdır. Yapılandırdığınız şerit boyutu, uygulamanın türüne ve istek desenine bağlıdır. Yanlış şerit boyutunu seçerseniz, bu G/Ç yanlış hizalamasına ve bu da uygulamanızın performansının düşmesine neden olabilir.
Örneğin, uygulamanız tarafından oluşturulan bir G/Ç isteği disk şeridi boyutundan daha büyükse, depolama sistemi bunu birden fazla diskte şeritli birim sınırları boyunca yazar. Bu verilere erişme zamanı geldiğinde, isteği tamamlamak için birden fazla şerit birimi arasında arama yapmak gerekir. Böyle bir davranışın kümülatif etkisi, önemli ölçüde performans düşüklüğüne yol açabilir. Diğer taraftan, eğer G/Ç istek boyutu şerit boyutundan küçükse ve doğası gereği rastgele ise, G/Ç istekleri aynı disk üzerinde birikerek dar boğaz oluşturabilir ve nihayetinde G/Ç performansını düşürebilir.
Uygulamanızın çalıştırdığı iş yükünün türüne bağlı olarak, uygun bir şerit boyutu seçin. Rastgele küçük I/O talepleri için, daha küçük bir şerit boyutu kullanın. Büyük sıralı G/Ç istekleri için daha büyük bir şerit boyutu kullanın. Premium depolamada çalıştırılacak uygulama için şerit boyutu önerilerini öğrenin. SQL Server için, OLTP iş yükleri için 64 KB, veri ambarı iş yükleri için 256 KB şerit boyutunu yapılandırın. Daha fazla bilgi için SQL Server için Azure VM'lerde Performans için En İyi Uygulamalar bölümüne bakın.
Uyarı
Bir DS serisi VM'de maksimum 32 premium depolama diski ve bir GS serisi VM'de 64 premium depolama diski birleştirebilirsiniz.
Çoklu iş parçacığı kullanımı
Azure, premium depolama platformunu aşırı paralel olacak şekilde tasarladı. Bu nedenle, çok iş parçacıklı bir uygulama tek iş parçacıklı bir uygulamadan daha yüksek performans elde eder. Çok iş parçacıklı bir uygulama, görevlerini birden çok iş parçacığına böler ve VM ve disk kaynaklarını en üst düzeye çıkararak yürütme verimliliğini artırır.
Örneğin, uygulamanız iki iş parçacığı kullanan tek çekirdekli bir sanal makinede çalışıyorsa, CPU verimliliği sağlamak için iki iş parçacığı arasında geçiş yapabilir. Bir iş parçacığı bir diski G/Ç'nin tamamlanmasını beklerken, CPU diğer iş parçacığına geçebilir. Bu şekilde, iki iş parçacığı tek bir iş parçacığından daha fazlasını gerçekleştirebilir. VM'nin birden fazla çekirdeği varsa, her çekirdek görevleri paralel olarak çalıştırabildiğinden çalışma süresini daha da azaltır.
Kullanıma hazır bir uygulamanın tek iş parçacığı veya çoklu iş parçacığı uygulama şeklini değiştiremeyebilirsiniz. Örneğin, SQL Server çoklu CPU ve çok çekirdek işlemlerini yönetebilme kapasitesine sahiptir. Ancak, SQL Server bir sorguyu işleme almak için hangi koşullar altında bir veya daha fazla iş parçacığı kullanacağını belirler. Sorguları çalıştırabilir ve çoklu iş parçacığı kullanarak dizinler oluşturabilir. Büyük tabloları birleştirmeyi ve kullanıcıya dönmeden önce verileri sıralamayı içeren bir sorgu için SQL Server büyük olasılıkla birden çok iş parçacığı kullanır. Kullanıcı, SQL Server'ın tek bir iş parçacığı veya birden çok iş parçacığı kullanarak sorgu çalıştırıp çalıştırmadığını denetleyemez.
Uygulamanın çoklu iş parçacığı kullanımını veya paralel işlemeyi etkilemek için değiştirebileceğiniz yapılandırma ayarları vardır. Örneğin, SQL Server için bu yapılandırmadır max degree of parallelism
. MAXDOP adlı bu ayar, paralel işlem sırasında SQL Server'ın kullanabileceği maksimum işlemci sayısını yapılandırmanıza olanak tanır. Bireysel sorgular veya dizin işlemleri için MAXDOP'u yapılandırabilirsiniz. Bu özellik, performans açısından kritik bir uygulama için sisteminizin kaynaklarını dengelemek istediğinizde yararlıdır.
Örneğin, SQL Server kullanan uygulamanızın aynı anda büyük bir sorgu ve dizin işlemi çalıştırdığını söyleyebiliriz. Diyelim ki indeks işleminin büyük sorguya göre daha verimli olmasını istediniz. Böyle bir durumda, dizin operasyonunun MAXDOP değerini sorgu için belirlenen MAXDOP değerinden daha yüksek olarak ayarlayabilirsiniz. Bu şekilde SQL Server, büyük sorguya ayırabileceği işlemci sayısına kıyasla dizin işlemi için kullanabileceğinden daha fazla işlemciye sahiptir. UNUTMAYıN, SQL Server'ın her işlem için kullandığı iş parçacığı sayısını denetlemezsiniz. En fazla kaç işlemci çoklu iş parçacığı için ayrılacağını kontrol edebilirsiniz.
SQL Server'da paralellik dereceleri hakkında daha fazla bilgi edinin. Bu tür ayarların, performansı iyileştirmek için uygulamanızda çoklu iş parçacığı kullanımı ve bunların yapılandırmalarını nasıl etkilediğini öğrenin.
Kuyruk derinliği
Kuyruk derinliği, kuyruk uzunluğu veya kuyruk boyutu, sistemdeki bekleyen G/Ç isteklerinin sayısıdır. Kuyruk derinliği değeri, uygulamanızın kaç G/Ç işlemini sıralayabileceğini ve bunların depolama diskleri tarafından nasıl işleneceğini belirler. Bu makalede ele alınan üç uygulama performansı göstergesini de etkiler: IOPS, aktarım hızı ve gecikme süresi.
Kuyruk derinliği ve çoklu iş parçacığı yakından ilişkilidir. Kuyruk derinliği değeri, uygulama tarafından ne kadar çok iş parçacığı elde edilebileceğini gösterir. Kuyruk derinliği büyükse, uygulama daha fazla işlemi eşzamanlı olarak çalıştırabilir, başka bir deyişle, daha fazla çoklu işlem yapabilir. Kuyruk derinliği küçükse, uygulama çok iş parçacıklı olsa bile, eşzamanlı yürütme için sıraya alınmış yeterli isteği olmayacaktır.
Genellikle, hazır uygulamalar kuyruk derinliğini değiştirmenize izin vermez çünkü yanlış ayarlandığında, faydadan çok zarar verir. Uygulamalar, optimum performansı elde etmek için kuyruk derinliğinin doğru değerini belirler. Bu kavramı anlamak, uygulamanızdaki performans sorunlarını giderebilmeniz açısından önemlidir. Kuyruk derinliğinin etkilerini sisteminizde benchmark araçlarını çalıştırarak da gözlemleyebilirsiniz.
Bazı uygulamalar, kuyruk derinliğini etkilemek için ayarlar sağlar. Örneğin, önceki bölümde açıklanan SQL Server içindeki MAXDOP ayarı. MAXDOP, SQL Server'ın kuyruk derinliğini doğrudan değiştirmemekle birlikte, kuyruk derinliğini ve çoklu işlemeyi etkilemenin bir yoludur.
Yüksek sıra derinliği
Yüksek kuyruk derinliği, disk üzerinde daha fazla işlemi sıraya dizer. Disk, sıradaki talebi önceden bilir. Bu nedenle, disk operasyonları önceden planlayabilir ve bunları optimum bir sırada işleyebilir. Uygulama diske daha fazla istek gönderdiği için, disk daha fazla paralel I/O işlemi gerçekleştirebilir. Sonuçta, uygulama daha yüksek IOPS seviyelerine ulaşabilir. Çünkü uygulama daha fazla istek işliyor, uygulamanın toplam verimi de artıyor.
Genellikle, bir uygulama bağlı disk başına 8 ila 16'dan fazla açık G/Ç ile maksimum veri akışını sağlayabilir. Kuyruk derinliği bir ise, uygulama sisteme yeterli G/Ç göndermiyordur ve belirli bir süre içinde daha küçük bir miktarda işler. Başka bir deyişle daha az aktarım hızı.
Örneğin, SQL Server'da bir sorgu için MAXDOP değerini 4
olarak ayarlamak, SQL Server'a sorguyu çalıştırmak için en fazla dört çekirdek kullanabileceğini belirtir. SQL Server, sorgu yürütmesi için en iyi kuyruk derinliği değerini ve çekirdek sayısını belirler.
En uygun kuyruk derinliği
Çok yüksek bir sıra derinliği değeri de dezavantajlara sahiptir. Kuyruk derinliği değeri çok yüksekse, uygulama çok yüksek IOPS değerlerine ulaşmaya çalışır. Uygulamanın sağlanan yeterli IOPS'ye sahip kalıcı diskleri yoksa, çok yüksek bir kuyruk derinliği değeri uygulama gecikme sürelerini olumsuz etkileyebilir. Aşağıdaki formül IOPS, gecikme süresi ve kuyruk derinliği arasındaki ilişkiyi gösterir.
Kuyruk derinliğini çok yüksek bir değere değil, gecikmeleri etkilemeden uygulama için yeterli IOPS sağlayabilecek en uygun değere yapılandırmalısınız. Örneğin, uygulama gecikmesi 1 milisaniye olması gerektiğinde, 5.000 IOPS elde etmek için gereken sıra derinliği QD = 5.000 x 0.001 = 5 olur.
Şeritli birim için kuyruk derinliği
Şeritli bir disk hacmi için, her diskin ayrı ayrı maksimum kuyruk derinliğine sahip olabilmesi için yeterince yüksek bir kuyruk derinliğini koruyun. Örneğin, 2
derinliğinde bir kuyruk iten ve sırada dört disk bulunan bir uygulamayı düşünün. İki I/O isteği iki disk üzerine gider ve kalan iki disk boşta kalır. Bu nedenle, tüm disklerin kullanılır durumda olabilmesi için kuyruk derinliğini yapılandırın. Aşağıdaki formülde, şeritli hacimlerin kuyruk derinliğinin nasıl belirleneceği gösterilmektedir.
Hız kısıtlama
Premium depolama, seçtiğiniz VM boyutlarına ve disk boyutlarına bağlı olarak belirtilen bir IOPS ve veri aktarım hızını sağlar. Uygulamanızın IOPS veya aktarım hızını VM veya disk sınırlarının üzerinde zorlamaya çalıştığı her zaman, premium depolama sistemi bunu kısıtlar. Sonuç, uygulamanızda performansın düşmesidir ve bu da daha yüksek gecikme süresi, daha düşük aktarım hızı veya daha düşük IOPS anlamına gelebilir.
Premium depolama alanı kısıtlamazsa, uygulamanız kaynaklarının kapasitesini aşarak tamamen çalışmayı durdurabilir. Boğmaya bağlı performans sorunlarından kaçınmak için, uygulamanız için her zaman yeterli kaynak ayırın. Önceki VM boyutları ve disk boyutları bölümlerinde tartıştıklarımızı dikkate alın. Karşılaştırmalı değerlendirme, uygulamanızı barındırmak için ne tür kaynaklara ihtiyacınız olduğunu belirlemenin en iyi yoludur.
Sonraki adımlar
Diskinizi test etmeyi planlıyorsanız, aşağıdaki makalelere göz atın:
- Linux için: Uygulamanızı Azure Disk Depolama üzerinde test edin
- Windows için: Bir diski karşılaştırmalı değerlendirin
Mevcut disk türleri hakkında daha fazla bilgi edinin.
- Linux için: Bir disk türü seçin
- Windows için: Bir disk türü seçin
SQL Server kullanıcıları için SQL Server için performans en iyi yöntemleri makalelerine bakın: