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
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.
- Nol atau satu prosesor virtual dipetakan ke nol 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 overcommit.
- Nol hingga banyak: mewakili tidak adanya komputer virtual pada sistem host. Jadi VM tidak menggunakan prosesor logis apa pun.
- Soket dipetakan ke nol atau lebih inti. Saat pemetaan soket-ke-inti adalah:
- Satu hingga nol: mewakili soket kosong. Tidak ada chip yang diinstal.
- Satu ke satu: mewakili chip inti tunggal 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.
- Inti dipetakan ke satu atau dua prosesor logis. Ketika pemetaan inti ke prosesor logis adalah:
- Satu ke satu: SMT nonaktif.
- Satu hingga 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 hingga maksimum 64 prosesor logis per simpul NUMA, yang disajikan ke sistem operasi.
Perhatian
Pembaruan Kumulatif SQL Server 2022 (16.x) 11 memperkenalkan perubahan yang melanggar, di mana Mesin Database tidak dimulai jika mendeteksi lebih dari 64 inti logis per simpul NUMA.
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 64 inti logis yang didukung 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.
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"
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
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 instans bare-metal
Tabel berikut menjelaskan cara mengurangi jumlah inti logis pada instans bare-metal SQL Server.
Pada CPU Intel, Anda dapat mengaktifkan pengklusteran sub-NUMA (SNC), yang sebelumnya disebut Cluster-on-Die (CoD), menghasilkan dua domain NUMA dalam satu soket fisik.
Pengaturan Konfigurasi | Deskripsi |
---|---|
SNC dinonaktifkan (default) | Menonaktifkan pengklusteran sub-NUMA. |
SNC diaktifkan | Mengaktifkan pengklusteran sub-NUMA. |
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 (default) |
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 quad-core dengan SMT diaktifkan dan dua utas per inti, Anda memiliki 16 prosesor logis: 2 prosesor x 4 core 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 | Maksimum sistem operasi | Maksimum sistem operasi |
Pengembang | Maksimum sistem operasi | 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 yang diisi dengan prosesor quad-core dan kemampuan untuk mengaktifkan dua utas SMT per inti berisi 32 prosesor logis dengan 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 operasi cakupan 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.
Konten terkait
- Edisi dan fitur yang didukung SQL Server 2022
- Spesifikasi kapasitas maksimum untuk SQL Server
- Panduan penginstalan SQL Server
Dapatkan bantuan
- Ide untuk SQL: Memiliki saran untuk meningkatkan SQL Server?
- Microsoft Q & A (SQL Server)
- DBA Stack Exchange (tag sql-server): Ajukan pertanyaan SQL Server
- Stack Overflow (tag sql-server): Jawaban atas pertanyaan pengembangan SQL
- Reddit: Diskusi umum tentang SQL Server
- Syarat dan Informasi Lisensi Microsoft SQL Server
- Opsi dukungan untuk pengguna bisnis
- Hubungi Microsoft
- Bantuan dan umpan balik SQL Server tambahan
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