Bagikan melalui


Batas kapasitas komputasi berdasarkan edisi SQL Server

Berlaku untuk:SQL Server

Artikel ini membahas batas kapasitas komputasi untuk edisi SQL Server dan perbedaannya dalam lingkungan fisik dan virtual dengan prosesor multithreading (SMT) simultan. Pada CPU Intel, SMT disebut Hyper-Threading.

Gambaran Umum

Diagram memperlihatkan pemetaan untuk menghitung batas kapasitas.

Tabel ini menjelaskan notasi dalam diagram sebelumnya:

Nilai Deskripsi
0..1 Nol atau satu
1 Tepat satu
1..* Satu atau lebih
0..* Nol atau lebih
1..2 Satu atau dua

Untuk menguraikan lebih lanjut:

  • Komputer virtual (VM) memiliki satu atau beberapa prosesor virtual.
  • Satu atau beberapa prosesor virtual dialokasikan untuk tepat satu komputer virtual.
  • 0 atau 1 prosesor virtual dipetakan ke 0 atau lebih prosesor logis. Ketika pemetaan prosesor virtual ke prosesor logis adalah:
    • Satu hingga nol: mewakili prosesor logis yang tidak terikat yang tidak digunakan oleh sistem operasi tamu.
    • Satu ke banyak: mewakili komitmen berlebihan.
    • Nol hingga banyak: mewakili tidak adanya komputer virtual pada sistem host. Jadi VM tidak menggunakan prosesor logis apa pun.
  • Sebuah soket dipetakan ke satu atau lebih inti. Saat pemetaan soket-ke-inti adalah:
    • Satu hingga nol: mewakili soket kosong. Tidak ada chip yang diinstal.
    • Satu banding satu: mewakili chip dengan satu inti yang dipasang di soket. Pemetaan ini jarang terjadi akhir-akhir ini.
    • Satu hingga banyak: mewakili chip multi-core yang dipasang di soket. Nilai umumnya adalah 2, 4, dan 8.
  • Satu inti dipetakan ke satu atau dua prosesor logis. Ketika pemetaan inti ke prosesor logis adalah:
    • Satu ke satu: SMT nonaktif.
    • Satu sampai dua: SMT aktif.

Definisi berikut berlaku untuk istilah yang digunakan dalam artikel ini:

  • Utas atau prosesor logis adalah salah satu mesin komputasi logis dari perspektif SQL Server, sistem operasi, aplikasi, atau driver.

  • Inti adalah unit prosesor. Ini dapat terdiri dari satu atau beberapa prosesor logis.

  • Prosesor fisik dapat terdiri dari satu atau beberapa inti. Prosesor fisik sama dengan paket prosesor atau soket.

Batas jumlah inti logis per simpul NUMA hingga 64

Anda dapat mengalami masalah seperti stack dump di server dengan lebih dari 64 prosesor logis per simpul NUMA. Konfigurasi BIOS atau firmware dapat mengurangi jumlah inti logis yang disajikan ke sistem operasi hingga maksimum 64 prosesor logis per simpul NUMA.

Perhatian

Pembaruan Kumulatif 11 untuk SQL Server 2022 (16.x) memperkenalkan perubahan signifikan yaitu Mesin Database tidak akan dimulai jika mendeteksi lebih dari 64 inti (core) logis per simpul NUMA.

Mulai dari SQL Server 2022 (16.x) Pembaruan Kumulatif 15, Penyiapan menghasilkan peringatan bahwa konfigurasi ini tidak didukung dan akan mengakibatkan layanan Mesin Database dihentikan dan dinonaktifkan. Peringatan juga disertakan dalam log Penyiapan.

Anda dapat mengurangi jumlah inti logis per simpul NUMA di Azure Virtual Machine, dengan menonaktifkan SMT. Untuk instans SQL Server bare-metal , Anda dapat mengurangi jumlah inti logis dengan opsi pengklusteran sub-NUMA (SNC) atau Node per Soket (NPS).

Menonaktifkan SMT di Azure Virtual Machine

SQL Server memiliki batas yang didukung untuk 64 inti logis per simpul NUMA. Dalam beberapa kasus, VM seri Azure Mv3 mungkin melebihi batas ini, yang mencegah SQL Server memulai, atau memungkinkannya berjalan dengan performa yang terdegradasi. Untuk menonaktifkan SMT, buat perubahan berikut menggunakan PowerShell dan Editor Registri (reg.exe). Pastikan untuk mencadangkan registri Anda sebelum mengeditnya.

  1. Periksa jumlah inti logis. SMT diaktifkan jika rasionya adalah 2:1 (jumlah inti logis adalah dua kali jumlah inti).

    Get-CimInstance -ClassName Win32_Processor | Select-Object -Property "NumberOfCores", "NumberOfLogicalProcessors"
    
  2. Nonaktifkan SMT dengan dua perubahan registri berikut, lalu boot ulang VM.

    reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 8264 /f
    reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f
    
  3. Periksa jumlah inti logis sekali lagi. Jumlah inti logis harus cocok dengan jumlah inti.

    Get-CimInstance -ClassName Win32_Processor | Select-Object -Property "NumberOfCores", "NumberOfLogicalProcessors"
    

Mengurangi jumlah inti logis pada instance bare-metal

Bagian berikut menjelaskan cara mengurangi jumlah inti logis pada instans bare-metal (tanpa virtualisasi) SQL Server.

Intel Xeon CPU

Pada generasi ketiga, keempat, dan kelima CPU Intel Xeon, Anda dapat mengaktifkan pengklusteran sub-NUMA (SNC), sebelumnya disebut Cluster-on-Die (CoD), menghasilkan dua domain NUMA dalam satu soket fisik.

Nota

CPU Intel Xeon generasi keenam dilengkapi dengan pengklusteran sub-NUMA (SNC2 atau SNC3) diaktifkan secara default. Dalam beberapa model CPU, konfigurasi SNC default dapat menghasilkan lebih dari 64 prosesor logis per simpul NUMA. Anda harus mengaktifkan fitur INTEL virtual NUMA di BIOS/firmware, bersama SNC2 atau SNC3, untuk model CPU ini.

Pengaturan Konfigurasi Deskripsi
SNC dinonaktifkan 1 Menonaktifkan pengklusteran sub-NUMA.
SNC2 diaktifkan 2 Menyediakan dua simpul NUMA per soket.
SNC3 diaktifkan 2 Menampilkan tiga simpul NUMA per soket.
Intel VirtualNuma diaktifkan 3 Membuat beberapa simpul virtual dalam satu simpul NUMA fisik.

1 Pengaturan default untuk CPU Intel Xeon generasi ketiga, keempat, dan kelima.

2 Bawaan untuk CPU Intel Xeon generasi keenam dan yang lebih baru.

3 Hanya tersedia pada CPU Intel Xeon generasi keenam dan yang lebih baru. Gunakan pengaturan ini untuk CPU jumlah inti tinggi, di mana jumlah prosesor logis per simpul NUMA melebihi 64 saat menggunakan default SNC.

AMD CPU

Pada CPU AMD, Anda dapat mengaktifkan berbagai opsi Node per Soket (NPS).

Pengaturan Konfigurasi Deskripsi
NPS0 Dalam sistem soket ganda, NUMA hadir sebagai simpul tunggal dengan semua saluran memori yang terjalin di seluruh simpul.
NPS1 (bawaan) Konfigurasi ini menyajikan satu simpul NUMA per soket.
NPS2 Konfigurasi ini menyajikan dua simpul NUMA per soket, mirip dengan SNC.
NPS4 Konfigurasi ini menyajikan empat simpul NUMA per soket.

Keterangan

Sistem dengan lebih dari satu prosesor fisik atau sistem dengan prosesor fisik yang memiliki beberapa inti dan/atau SMT memungkinkan sistem operasi menjalankan beberapa tugas secara bersamaan. Setiap utas eksekusi muncul sebagai prosesor logis. Misalnya, jika komputer Anda memiliki dua prosesor empat inti dengan SMT diaktifkan dan dua utas per inti, Anda memiliki 16 prosesor logis: 2 prosesor x 4 inti per prosesor x 2 utas per inti. Perlu dicatat bahwa:

  • Kapasitas komputasi prosesor logis dari satu utas inti SMT kurang dari kapasitas komputasi prosesor logis dari inti yang sama dengan SMT yang dinonaktifkan.

  • Kapasitas komputasi dari dua prosesor logis dalam inti SMT lebih besar dari kapasitas komputasi inti yang sama dengan SMT dinonaktifkan.

Setiap edisi SQL Server memiliki dua batas kapasitas komputasi:

  • Jumlah maksimum soket (atau prosesor fisik atau paket prosesor)

  • Jumlah maksimum inti seperti yang dilaporkan oleh sistem operasi

Batas ini berlaku untuk satu instans SQL Server. Mereka mewakili kapasitas komputasi maksimum yang digunakan satu instans. Mereka tidak membatasi server tempat instans mungkin disebarkan. Bahkan, menyebarkan beberapa instans SQL Server di server fisik yang sama adalah cara yang efisien untuk menggunakan kapasitas komputasi server fisik dengan lebih banyak soket dan/atau inti daripada batas kapasitas yang diizinkan.

Tabel berikut menentukan batas kapasitas komputasi untuk satu instans dari setiap edisi SQL Server:

Edisi SQL Server Kapasitas komputasi maksimum untuk satu instans (SQL Server Database Engine) Kapasitas komputasi maksimum untuk satu instans (AS, RS)
Edisi perusahaan: Lisensi berbasis inti 1 Batas maksimum sistem operasi Batas maksimum sistem operasi
Pengembang Batas maksimum sistem operasi Batas maksimum sistem operasi
Standard Terbatas pada kurang dari 4 soket atau 24 inti Terbatas pada kurang dari 4 soket atau 24 inti
Ekspres Terbatas pada kurang dari 1 soket atau 4 core Terbatas pada kurang dari 1 soket atau 4 core

1 Edisi Perusahaan dengan lisensi Server + Client Access License (CAL) dibatasi hingga 20 core per instans SQL Server. (Lisensi ini tidak tersedia untuk perjanjian baru.) Tidak ada batasan di bawah model Lisensi Server berbasis Inti.

Dalam lingkungan virtual, batas kapasitas komputasi didasarkan pada jumlah prosesor logis, bukan inti. Alasannya adalah bahwa arsitektur prosesor tidak terlihat oleh aplikasi tamu.

Misalnya, server yang memiliki empat soket dengan prosesor quad-core dan kemampuan untuk mengaktifkan dua thread SMT per inti dapat mendukung 32 prosesor logis saat SMT diaktifkan. Tetapi hanya berisi 16 prosesor logis dengan SMT dinonaktifkan. Prosesor logis ini dapat dipetakan ke komputer virtual di server. Beban komputasi komputer virtual pada prosesor logis tersebut dipetakan ke utas eksekusi pada prosesor fisik di server host.

Anda mungkin ingin menonaktifkan SMT ketika performa untuk setiap prosesor virtual penting. Anda dapat mengonfigurasi SMT dengan menggunakan pengaturan BIOS untuk prosesor selama penyiapan BIOS, tetapi biasanya merupakan operasi yang berskala server, yang memengaruhi semua beban kerja yang berjalan di server. Anda mungkin mempertimbangkan untuk memisahkan beban kerja yang berjalan di lingkungan virtual, dari beban kerja yang akan mendapat manfaat dari peningkatan performa SMT di lingkungan sistem operasi fisik.

Dapatkan bantuan

Berkontribusi pada dokumentasi SQL

Tahukah Anda bahwa Anda dapat mengedit konten SQL sendiri? Jika Anda melakukannya, Anda tidak hanya membantu meningkatkan dokumentasi kami, tetapi Anda juga dikreditkan sebagai kontributor ke halaman.

Untuk informasi selengkapnya, lihat Cara berkontribusi pada dokumentasi SQL Server