Ekstensi kumpulan buffer

Berlaku untuk:SQL Server

Diperkenalkan di SQL Server 2014 (12.x), ekstensi kumpulan buffer menyediakan integrasi yang mulus dari ekstensi memori akses acak nonvolatile (yaitu, solid-state drive) ke kumpulan buffer Mesin Database untuk meningkatkan throughput I/O secara signifikan. Ekstensi kumpulan buffer tidak tersedia di setiap edisi SQL Server. Untuk informasi selengkapnya, lihat Fitur yang Didukung oleh Edisi SQL Server 2016.

Manfaat ekstensi kumpulan buffer

Tujuan utama database SQL Server adalah untuk menyimpan dan mengambil data, sehingga I/O disk intensif adalah karakteristik inti dari Mesin Database. Karena operasi I/O disk dapat menggunakan banyak sumber daya dan membutuhkan waktu yang relatif lama untuk diselesaikan, SQL Server berfokus pada membuat I/O sangat efisien. Kumpulan buffer berfungsi sebagai sumber alokasi memori utama SQL Server. Manajemen buffer adalah komponen utama dalam mencapai efisiensi ini. Komponen manajemen buffer terdiri dari dua mekanisme: manajer buffer untuk mengakses dan memperbarui halaman database, dan kumpulan buffer, untuk mengurangi I/O file database.

Halaman data dan indeks dibaca dari disk ke dalam kumpulan buffer dan halaman yang dimodifikasi (juga dikenal sebagai halaman kotor) ditulis kembali ke disk. Tekanan memori pada server dan titik pemeriksaan database menyebabkan halaman kotor panas (aktif) di cache buffer dikeluarkan dari cache dan ditulis ke disk mekanis dan kemudian dibaca kembali ke cache. Operasi I/O ini biasanya merupakan bacaan dan tulis acak kecil pada urutan 4 hingga 16 KB data. Pola I/O acak kecil yang sering terjadi, bersaing untuk lengan disk mekanis, meningkatkan latensi I/O, dan mengurangi throughput I/O agregat sistem.

Pendekatan umum untuk mengatasi hambatan I/O ini adalah menambahkan lebih banyak DRAM, atau sebagai alternatif, menambahkan spindel SAS berkinerja tinggi. Meskipun opsi ini sangat membantu, mereka memiliki kelemahan yang signifikan: DRAM lebih mahal daripada drive penyimpanan data dan menambahkan spindle meningkatkan pengeluaran modal dalam akuisisi perangkat keras dan meningkatkan biaya operasional dengan meningkatkan konsumsi daya dan peningkatan probabilitas kegagalan komponen.

Fitur ekstensi kumpulan buffer memperluas cache kumpulan buffer dengan penyimpanan nonvolatile (biasanya SSD). Karena ekstensi ini, kumpulan buffer dapat mengakomodasi kumpulan kerja database yang lebih besar, yang memaksa halaman I/Os antara RAM dan SSD. Ini secara efektif membongkar I/Os acak kecil dari disk mekanis ke SSD. Karena latensi yang lebih rendah dan performa I/O acak SSD yang lebih baik, ekstensi kumpulan buffer secara signifikan meningkatkan throughput I/O.

Daftar berikut menjelaskan manfaat fitur ekstensi kumpulan buffer.

  • Peningkatan throughput I/O acak

  • Mengurangi latensi I/O

  • Peningkatan throughput transaksi

  • Peningkatan performa baca dengan kumpulan buffer hibrid yang lebih besar

  • Arsitektur penembolokan yang dapat memanfaatkan drive memori murah saat ini dan masa depan

Konsep

Ketentuan berikut berlaku untuk fitur ekstensi kumpulan buffer.

Solid-state drive (SSD)
Drive solid-state menyimpan data dalam memori (RAM) secara persisten. Untuk informasi selengkapnya, lihat definisi ini.

Buffer
Di SQL Server, buffer adalah halaman 8 KB dalam memori, ukuran yang sama dengan data atau halaman indeks. Dengan demikian, cache buffer dibagi menjadi halaman 8-KB. Halaman tetap berada di cache buffer hingga manajer buffer memerlukan area buffer untuk membaca lebih banyak data. Data ditulis kembali ke disk hanya jika dimodifikasi. Halaman yang dimodifikasi dalam memori ini dikenal sebagai halaman kotor. Halaman bersih ketika setara dengan gambar databasenya pada disk. Data dalam cache buffer dapat dimodifikasi beberapa kali sebelum ditulis kembali ke disk.

Kumpulan buffer
Juga disebut buffer cache. Kumpulan buffer adalah sumber daya global yang dibagikan oleh semua database untuk halaman data yang di-cache. Ukuran maksimum dan minimum cache kumpulan buffer ditentukan selama startup atau ketika instans SQL Server dikonfigurasi ulang secara dinamis dengan menggunakan sp_configure. Ukuran ini menentukan jumlah maksimum halaman yang dapat di-cache di kumpulan buffer kapan saja dalam instans yang sedang berjalan.

Memori maksimum yang dapat diterapkan oleh ekstensi kumpulan buffer dapat dibatasi oleh aplikasi lain yang berjalan pada komputer jika mereka menciptakan tekanan memori yang signifikan.

Pos pemeriksaan
Titik pemeriksaan membuat titik bagus yang diketahui dari mana Mesin Database dapat mulai menerapkan perubahan yang terkandung dalam log transaksi selama pemulihan setelah pematian atau crash yang tidak terduga. Titik pemeriksaan menulis halaman kotor dan informasi log transaksi dari memori ke disk dan, juga, merekam informasi tentang log transaksi. Untuk informasi selengkapnya, lihat Titik Pemeriksaan Database (SQL Server).

Detail

Penyimpanan SSD digunakan sebagai ekstensi untuk subsistem memori daripada subsistem penyimpanan disk. Artinya, file ekstensi kumpulan buffer memungkinkan manajer kumpulan buffer untuk menggunakan memori DRAM dan NAND-Flash untuk mempertahankan kumpulan buffer halaman suam-suam kuku yang jauh lebih besar dalam memori akses acak nonvolatile yang didukung oleh SSD. Ini membuat hierarki penembolokan multilevel dengan tingkat 1 (L1) sebagai DRAM dan tingkat 2 (L2) sebagai file ekstensi kumpulan buffer pada SSD. Hanya halaman bersih yang ditulis ke cache L2, yang membantu menjaga keamanan data. Manajer buffer menangani pergerakan halaman bersih antara cache L1 dan L2.

Ilustrasi berikut memberikan gambaran umum arsitektur tingkat tinggi tentang kumpulan buffer relatif terhadap komponen SQL Server lainnya.

SSD buffer pool extension Architecture

Saat diaktifkan, ekstensi kumpulan buffer menentukan ukuran dan jalur file file penembolokan kumpulan buffer pada SSD. File ini adalah tingkat penyimpanan yang berdampingan pada SSD dan dikonfigurasi secara statis selama startup instans SQL Server. Perubahan pada parameter konfigurasi file hanya dapat dilakukan ketika fitur ekstensi kumpulan buffer dinonaktifkan. Saat ekstensi kumpulan buffer dinonaktifkan, semua pengaturan konfigurasi terkait dihapus dari registri. File ekstensi kumpulan buffer dihapus setelah mematikan instans SQL Server.

Batasan kapasitas

Edisi SQL Server Enterprise memungkinkan ukuran ekstensi kumpulan buffer maksimum 32 kali nilai max_server_memory.

Edisi Standar SQL Server memungkinkan ukuran ekstensi kumpulan buffer maksimum 4 kali nilai max_server_memory.

Praktik Terbaik

Kami menyarankan agar Anda mengikuti praktik terbaik ini.

  • Setelah mengaktifkan ekstensi kumpulan buffer untuk pertama kalinya disarankan untuk menghidupkan ulang instans SQL Server untuk mendapatkan manfaat performa maksimum.

  • Atur ekstensi kumpulan buffer sehingga rasio antara ukuran memori fisik (max_server_memory) dan ukuran ekstensi kumpulan buffer 1:16 atau kurang. Rasio yang lebih rendah dalam kisaran 1:4 hingga 1:8 mungkin optimal. Untuk informasi tentang mengatur opsi max_server_memory, lihat Opsi Konfigurasi Server Server Memory Server.

  • Uji ekstensi kumpulan buffer secara menyeluruh sebelum menerapkan di lingkungan produksi. Setelah dalam produksi, hindari membuat perubahan konfigurasi pada file atau menonaktifkan fitur. Aktivitas ini mungkin berdampak negatif pada performa server karena kumpulan buffer berkurang secara signifikan ukurannya ketika fitur dinonaktifkan. Ketika dinonaktifkan, memori yang digunakan untuk mendukung fitur tidak diklaim kembali sampai instans SQL Server dimulai ulang. Namun, jika fitur diaktifkan kembali, memori akan digunakan kembali tanpa memulai ulang instans.

Mengembalikan informasi tentang ekstensi kumpulan buffer

Anda dapat menggunakan tampilan manajemen dinamis berikut untuk menampilkan konfigurasi ekstensi kumpulan buffer dan mengembalikan informasi tentang halaman data dalam ekstensi.

Penghitung kinerja tersedia di SQL Server, Objek Manajer Buffer untuk melacak halaman data dalam file ekstensi kumpulan buffer. Untuk informasi selengkapnya, lihat penghitung kinerja ekstensi kumpulan buffer.

Xevents berikut tersedia.

XEvent Deskripsi Parameter
sqlserver.buffer_pool_extension_pages_written Diaktifkan ketika halaman atau grup halaman dikeluarkan dari kumpulan buffer dan ditulis ke file ekstensi kumpulan buffer. number_page

first_page_id

first_page_offset

initiator_numa_node_id
sqlserver.buffer_pool_extension_pages_read Diaktifkan saat halaman dibaca dari file ekstensi kumpulan buffer ke kumpulan buffer. number_page

first_page_id

first_page_offset

initiator_numa_node_id
sqlserver.buffer_pool_extension_pages_evicted Diaktifkan ketika halaman dikeluarkan dari file ekstensi kumpulan buffer. number_page

first_page_id

first_page_offset

initiator_numa_node_id
sqlserver.buffer_pool_eviction_thresholds_recalculated Diaktifkan ketika ambang pengeluaran dihitung. warm_threshold

cold_threshold

pages_bypassed_eviction

eviction_bypass_reason

eviction_bypass_reason_description
Deskripsi Tugas Topik
Aktifkan dan konfigurasikan ekstensi kumpulan buffer. MENGUBAH KONFIGURASI SERVER (Transact-SQL)
Mengubah konfigurasi ekstensi kumpulan buffer MENGUBAH KONFIGURASI SERVER (Transact-SQL)
Menampilkan konfigurasi ekstensi kumpulan buffer sys.dm_os_buffer_pool_extension_configuration (T-SQL)
Memantau ekstensi kumpulan buffer sys.dm_os_buffer_descriptors (T-SQL)

Penghitung kinerja