Konfigurasi server: masker I/O afinitas
Berlaku untuk: SQL Server
Untuk melakukan multitugas, Windows terkadang memindahkan utas proses di antara prosesor yang berbeda. Meskipun efisien dari sudut pandang sistem operasi, aktivitas ini dapat mengurangi performa SQL Server di bawah beban sistem berat, karena setiap cache prosesor berulang kali dimuat ulang dengan data. Menetapkan prosesor ke utas tertentu dapat meningkatkan performa dalam kondisi ini dengan menghilangkan beban ulang prosesor; hubungan seperti itu antara utas dan prosesor disebut afinitas prosesor.
SQL Server mendukung afinitas prosesor dengan dua opsi masker afinitas: affinity mask
(juga dikenal sebagai masker afinitas CPU) dan affinity I/O mask
. Untuk informasi selengkapnya tentang opsi ini affinity mask
, lihat Mengonfigurasi opsi konfigurasi server mask afinitas. Dukungan afinitas CPU dan I/O untuk server dengan prosesor 33 hingga 64 mengharuskan Anda juga menggunakan opsi konfigurasi server masker afinitas64 dan afinitas64 I/O .
Catatan
Dukungan afinitas untuk server dengan prosesor 33 hingga 64 hanya tersedia pada sistem operasi 64-bit.
Opsi mengikat affinity I/O mask
I/O disk SQL Server ke subset CPU tertentu. Di lingkungan pemrosesan transaksional online (OLTP) SQL Server kelas atas, ekstensi ini dapat meningkatkan performa utas SQL Server yang mengeluarkan I/Os. Peningkatan ini tidak mendukung afinitas perangkat keras untuk disk individu atau pengontrol disk.
Nilai untuk affinity I/O mask
menentukan CPU mana dalam komputer multiprosesor yang memenuhi syarat untuk memproses operasi I/O disk SQL Server. Masker adalah bitmap di mana bit paling kanan menentukan CPU(0) urutan terendah, bit ke kiri langsung menentukan CPU(1) urutan terendah berikutnya, dan sebagainya. Untuk mengonfigurasi lebih dari 32 prosesor, atur dan affinity I/O mask
affinity64 I/O mask
.
Nilai untuk affinity I/O mask
adalah sebagai berikut:
Byte dalam masker | Jumlah CPU |
---|---|
1-byte | Hingga 8 CPU |
2-byte | Hingga 16 CPU |
3-byte | Hingga 24 CPU |
4-byte | Hingga 32 CPU |
Untuk mencakup lebih dari 32 CPU, konfigurasikan 4 byte affinity I/O mask
untuk 32 CPU pertama dan hingga 4 byte affinity64 I/O mask
untuk CPU yang tersisa.
Sedikit 1
dalam pola I/O afinitas menentukan bahwa CPU yang sesuai memenuhi syarat untuk melakukan operasi I/O disk SQL Server. Bit 0
menentukan bahwa tidak ada operasi I/O disk SQL Server yang harus dijadwalkan untuk CPU yang sesuai. Ketika semua bit diatur ke 0
, atau affinity I/O mask
tidak ditentukan, I/O disk SQL Server dijadwalkan ke salah satu CPU yang memenuhi syarat untuk memproses utas SQL Server.
Karena mengatur opsi SQL Server affinity I/O mask
adalah operasi khusus, gunakan hanya jika perlu. Dalam kebanyakan kasus, afinitas Windows default memberikan performa terbaik.
Saat menentukan affinity I/O mask
opsi , Anda harus menggunakannya dengan affinity mask
opsi konfigurasi. Jangan aktifkan CPU yang sama di sakelar affinity I/O mask
dan affinity mask
opsi . Bit yang sesuai dengan setiap CPU harus berada di salah satu dari tiga status berikut:
0
affinity I/O mask
dalam opsi danaffinity mask
opsi .1
affinity I/O mask
dalam opsi dan0
dalamaffinity mask
opsi .0
affinity I/O mask
dalam opsi dan1
dalamaffinity mask
opsi .
Opsi ini affinity I/O mask
adalah opsi lanjutan. Jika Anda menggunakan prosedur tersimpan sp_configure
sistem untuk mengubah pengaturan, Anda hanya dapat mengubah affinity I/O mask
saat show advanced options
diatur ke 1
. Di SQL Server, mengonfigurasi affinity I/O mask
ulang opsi memerlukan mulai ulang instans SQL Server.
Perhatian
Jangan mengonfigurasi afinitas CPU dalam sistem operasi Windows dan juga mengonfigurasi affinity mask
di SQL Server. Pengaturan ini mencoba mencapai hasil yang sama, dan jika konfigurasi tidak konsisten, Anda dapat memiliki hasil yang tidak dapat diprediksi. Afinitas CPU SQL Server paling baik dikonfigurasi menggunakan sp_configure
prosedur tersimpan sistem di SQL Server.