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.
SQL Server 2014'te (12.x) tanıtılan arabellek havuzu uzantısı, G/Ç aktarım hızını önemli ölçüde geliştirmek için geçici olmayan rastgele erişim belleği (katı hal sürücüsü) uzantısının Veritabanı Altyapısı arabellek havuzuyla sorunsuz tümleştirilmesini sağlar. Arabellek havuzu uzantısı her SQL Server sürümünde kullanılamaz. Daha fazla bilgi için SQL Server 2022 sürümleri ve desteklenen özellikleri konusuna bakın.
Arabellek havuzu uzantısının avantajları
SQL Server veritabanının birincil amacı verileri depolamak ve almaktır, bu nedenle yoğun disk G/Ç Veritabanı Altyapısı'nın temel bir özelliğidir. Disk G/Ç işlemleri çok fazla kaynak tüketebileceğinden ve tamamlanması görece uzun sürebileceğinden, SQL Server G/Ç'yi yüksek oranda verimli hale getirme üzerine odaklanır. SQL Server'da birincil bellek ayırma kaynağı olarak arabellek havuzu işlev görür. Arabellek yönetimi, bu verimliliğe ulaşmada önemli bir bileşendir. Arabellek yönetimi bileşeni iki mekanizmadan oluşur: veritabanı sayfalarına erişmek ve güncelleştirmek için arabellek yöneticisi ve veritabanı dosyası G/Ç'sini azaltmak için arabellek havuzu.
Veri ve dizin sayfaları diskten arabellek havuzuna okunur ve değiştirilen sayfalar (kirli sayfalar olarak da bilinir) diske geri yazılır. Sunucu ve veritabanı kontrol noktaları üzerindeki bellek baskısı, arabellek önbelleğindeki sıcak (aktif) kirli sayfaların önbellekten çıkarılmasına, mekanik disklere yazılmasına ve ardından önbellekte yeniden okunmasına neden olur. Bu G/Ç işlemleri genellikle 4 KB ile 16 KB arasında veri sırasına göre küçük rastgele okuma ve yazma işlemleridir. Küçük rastgele G/Ç desenleri sık sık aramalara neden olur, mekanik disk kolu için rekabet eder, G/Ç gecikme süresini artırır ve sistemin toplam G/Ç aktarım hızını azaltır.
Bu G/Ç darboğazlarını çözmenin tipik yaklaşımı, daha fazla DRAM eklemek veya alternatif olarak yüksek performanslı SAS diskleri kullanmaktır. Bu seçenekler yararlı olsa da, önemli dezavantajları vardır: DRAM veri depolama sürücülerinden daha pahalıdır ve iş mili eklemek donanım alımında sermaye harcamasını artırır ve güç tüketimini artırarak ve bileşen arızası olasılığını artırarak operasyonel maliyetleri artırır.
Arabellek havuzu uzantısı özelliği, arabellek havuzu önbelleğini geçici olmayan depolama (genellikle SSD) ile genişletir. Bu uzantı nedeniyle arabellek havuzu, daha büyük bir veritabanı çalışma kümesini barındırabilir, bu da RAM ile SSD'ler arasında G/Ç'lerin sayfalanmasını zorunlu hale getirir. Bu, küçük rastgele G/Ç'leri mekanik disklerden SSD'lere etkili bir şekilde boşaltıyor. SSD'lerin daha düşük gecikme süresi ve daha iyi rastgele G/Ç performansı nedeniyle arabellek havuzu uzantısı G/Ç aktarım hızını önemli ölçüde artırır.
Aşağıdaki listede arabellek havuzu uzantısı özelliğinin avantajları açıklanmaktadır.
Artan rastgele G/Ç aktarım hızı
Azaltılmış G/Ç gecikme süresi
Artan işlem aktarım hızı
Daha büyük bir karma arabellek havuzu sayesinde okuma performansının artırılması
Mevcut ve gelecekteki düşük maliyetli bellek sürücülerinden yararlanabilen bir önbelleğe alma mimarisi
Kavramlar
Arabellek havuzu uzantısı özelliği için aşağıdaki koşullar geçerlidir.
| Süre | Description |
|---|---|
| Katı hal sürücüsü (SSD) | Katı hal sürücüleri verileri kalıcı bir şekilde bellekte (RAM) depolar. Daha fazla bilgi için wikipedia tanımına bakın. |
| Arabellek | SQL Server'da arabellek, bellekte veri veya dizin sayfasıyla aynı boyutta olan 8 KB'lık bir sayfadır. Bu nedenle, arabellek önbelleği 8 KB'lık sayfalara olarak ayrılır. Arabellek yöneticisi daha fazla veri okumak için arabellek alanına ihtiyaç duyana kadar bir sayfa arabellek önbelleğinde kalır. Veriler yalnızca değiştirildiğinde diske geri yazılır. Bu bellek içi değiştirilen sayfalar kirli sayfalar olarak bilinir. Sayfa, disk üzerindeki veritabanı görüntüsüyle eşdeğer olduğunda temizdir. Arabellek önbelleğindeki veriler diske yeniden yazılmadan önce birden çok kez değiştirilebilir. |
| Arabellek havuzu |
Arabellek önbelleği olarak da adlandırılır. Arabellek havuzu, önbelleğe alınan veri sayfaları için tüm veritabanları tarafından paylaşılan genel bir kaynaktır. Arabellek havuzu önbelleğinin en büyük ve en küçük boyutu, başlatma sırasında veya SQL Server örneği sp_configure ile dinamik olarak yeniden yapılandırıldığında belirlenir. Bu boyut, çalışan örnekte arabellek havuzunda herhangi bir zamanda önbelleğe alınabilecek en fazla sayfa sayısını belirler. Arabellek havuzu uzantısı tarafından işlenebilen maksimum bellek, bu uygulamaların önemli bir bellek baskısı oluşturması durumunda makinede çalışan diğer uygulamalar tarafından sınırlandırılabilir. |
| Checkpoint | Denetim noktası, veritabanı motorunun beklenmeyen bir kapatma veya kilitlenme sonrası kurtarma sırasında işlem günlüğündeki değişiklikleri uygulamaya başlayabildiği bilinen sağlam bir başlangıç noktası oluşturur. Denetim noktası kirli sayfaları ve işlem günlüğü bilgilerini bellekten diske yazar ve işlem günlüğü hakkındaki bilgileri de kaydeder. Daha fazla bilgi için bkz. Veritabanı denetim noktaları (SQL Server). |
Ayrıntılar
SSD depolama, disk depolama alt sistemi yerine bellek alt sisteminin uzantısı olarak kullanılır. Başka bir ifadeyle, arabellek havuzu uzantısı dosyası, arabellek havuzu yöneticisinin SSD'ler tarafından desteklenen geçici olmayan rastgele erişim belleğinde çok daha büyük bir yedek sayfa arabellek havuzunu korumak için hem DRAM hem de NAND-Flash bellek kullanmasına olanak tanır. Bu yapı, DRAM olarak düzey 1 (L1) ve SSD'deki arabellek havuzu uzantısı olarak düzey 2 (L2) ile çok düzeyli bir önbelleğe alma hiyerarşisi oluşturur. L2 önbelleğine yalnızca temiz sayfalar yazılır ve bu da veri güvenliğinin korunmasına yardımcı olur. Arabellek yöneticisi, temiz sayfaların L1 ve L2 önbellekleri arasındaki hareketini işler.
Aşağıdaki çizim, diğer SQL Server bileşenlerine göre arabellek havuzunun genel mimari bakışını sunmaktadır.
Etkinleştirildiğinde, arabellek havuzu uzantısı SSD'de arabellek havuzu önbelleğe alma dosyasının boyutunu ve dosya yolunu belirtir. Bu dosya, SSD üzerindeki depolamanın bitişik bir kapsamıdır ve SQL Server örneğinin başlatılması sırasında statik olarak yapılandırılır. Dosya yapılandırma parametrelerinde değişiklikler yalnızca arabellek havuzu uzantısı özelliği devre dışı bırakıldığında yapılabilir. Arabellek havuzu uzantısı devre dışı bırakıldığında, tüm ilgili yapılandırma ayarları kayıt defterinden kaldırılır. SQL Server örneği kapatıldığında arabellek havuzu uzantısı dosyası silinir.
Kapasite sınırlamaları
SQL Server Enterprise sürümü, max server memory (MB) değerinin 32 katı kadar maksimum arabellek havuzu genişletme boyutuna izin verir.
SQL Server Standard sürümü, max server memory (MB) değerinin dört katı maksimum arabellek havuzu uzantısı boyutuna izin verir.
En iyi yöntemler
Bu en iyi yöntemleri izlemenizi öneririz.
Arabellek havuzu uzantısını ilk kez etkinleştirdikten sonra en yüksek performans avantajlarından yararlanmak için SQL Server örneğini yeniden başlatmanız gerekir.
Arabellek havuzu uzantısını, fiziksel belleğin boyutu (
max server memory (MB)) ile arabellek havuzu uzantısının boyutu arasındaki oranın 1:16 veya daha az olması için ayarlayın. 1:4 ile 1:8 aralığında daha düşük bir oran en uygun olabilir. seçeneğini ayarlamamax server memory (MB)hakkında bilgi için bkz . Sunucu belleği yapılandırma seçenekleri.Arabellek havuzu uzantısını bir üretim ortamında kullanmadan önce kapsamlı bir şekilde test edin. Üretime geçtikten sonra dosyada yapılandırma değişiklikleri yapmaktan veya özelliği kapatmaktan kaçının. Özellik devre dışı bırakıldığında arabellek havuzunun boyutu önemli ölçüde azaldığından bu etkinliklerin sunucu performansı üzerinde olumsuz bir etkisi olabilir. Devre dışı bırakıldığında, özelliği desteklemek için kullanılan bellek SQL Server örneği yeniden başlatılana kadar geri kazanılamaz. Ancak özellik yeniden etkinleştirilirse, örnek yeniden başlatılmadan bellek yeniden kullanılır.
Arabellek havuzu uzantısı hakkında bilgi döndür
Arabellek havuzu uzantısının yapılandırmasını görüntülemek ve uzantıdaki veri sayfaları hakkında bilgi döndürmek için aşağıdaki dinamik yönetim görünümlerini kullanabilirsiniz.
Performans sayaçları, arabellek havuzu uzantısı dosyasındaki veri sayfalarını izlemek için SQL Server, Buffer Manager Nesnesi'nde kullanılabilir. Daha fazla bilgi için bkz arabellek havuzu uzantısı performans sayaçları.
Aşağıdaki XEvents kullanılabilir.
| XEvent | Description | Parametreler |
|---|---|---|
sqlserver.buffer_pool_extension_pages_written |
Bir sayfa veya sayfa grubu arabellek havuzundan boşaltılıp arabellek havuzu uzantı dosyasına yazıldığında tetiklenir. | number_pagefirst_page_idfirst_page_offsetinitiator_numa_node_id |
sqlserver.buffer_pool_extension_pages_read |
Bir sayfa arabellek havuzu uzantısı dosyasından arabellek havuzuna okunduğunda tetiklenir. | number_pagefirst_page_idfirst_page_offsetinitiator_numa_node_id |
sqlserver.buffer_pool_extension_pages_evicted |
Bir sayfa arabellek havuzu uzantısı dosyasından çıkarıldığında tetikler. | number_pagefirst_page_idfirst_page_offsetinitiator_numa_node_id |
sqlserver.buffer_pool_eviction_thresholds_recalculated |
Çıkarma eşiği hesaplandığında tetikler. | warm_thresholdcold_thresholdpages_bypassed_evictioneviction_bypass_reasoneviction_bypass_reason_description |