Saya memiliki server fisik yang menjalankan satu contoh SQL Server.
Saya perhatikan bahwa cukup sering server ini berjalan pada penggunaan CPU 100%.
Tim IT saya tidak senang dengan hal ini, dan menyarankan kami memesan 2 dari 32 core untuk OS.
Ini berfungsi dengan baik, sekarang puncak penggunaan maksimal hanya di bawah 90%. Selain itu, pengambilan data yang lambat dari berbagai pengguna tidak lagi dilaporkan.
Apakah ada alasan untuk TIDAK menggunakan WSRM (Windows System Resource Manager) dengan cara ini - alih-alih SQL Resource Governor?
Jawaban:
Apakah ada alasan untuk TIDAK menggunakan pendekatan yang telah Anda tetapkan? Benar.
Bayangkan Anda telah membeli mobil - mobil yang ketika Anda menekan 50MPH mesin mulai terlalu panas. Apakah reaksi Anda terhadap situasi ini adalah dengan membatasi secara buatan mobil hingga 49MPH, atau untuk mengetahui apa masalahnya dengan mesin?
Mengapa Anda membatasi mobil Anda hingga 49MPH? Pabrikan menyatakan bahwa ia dapat melaju secepat 80MPH - Anda suka mengendarai mobil Anda dengan cepat sehingga Anda ingin mencapai kecepatan ini - jika bukan karena masalah kepanasan.
Mobil yang Anda beli juga sangat, sangat mahal. Setiap silinder mesin perlu digunakan secara maksimal sehingga Anda tidak membuang-buang uang itu!
Dengan membatasi akses SQL Server secara artifisial ke CPU, Anda kehilangan kinerja. Anda mungkin telah menyelesaikan sementara masalah kinerja dengan memastikan CPU tersedia untuk OS untuk digunakan, tetapi Anda belum menjawab pertanyaan sebenarnya - MENGAPA SQL Server menggunakan 100% CPU?
Saran saya adalah sebagai berikut:
Cari tahu apa masalah sebenarnya, dan perbaiki. Jangan menutupi masalah dengan apa yang secara efektif merupakan kludge. Masalah AKAN muncul kembali dan menampar Anda di garis bawah ketika beban kerja server secara alami meningkat dengan pertumbuhan.
Sebagai perbaikan sementara , gubernur sumber daya dapat digunakan untuk menurunkan CPU yang digunakan, SAMPAI ANDA MENCARI MASALAH NYATA.
sumber
Erik Darling menyebutkan alasan praktis terbesar untuk tidak menggunakan WSRM dalam komentar pada pertanyaan Anda:
Jika ini berhasil untuk Anda, maka pertahankan - kita semua sibuk, dan Anda hanya dapat menghabiskan begitu banyak waktu untuk masalah apa pun. The yang ideal solusi akan memperbaiki mendasari permintaan / masalah yang mendorong CPU ke titik masalah nyata-pengguna (yang George cover dalam bukunya jawaban yang sangat baik ).
Erik melanjutkan dengan mengatakan
Dari sudut pandang bisnis, ini mungkin adalah bagian terburuk dari kesepakatan WSRM - Anda membayar lisensi per-inti untuk 2 core yang secara eksplisit tidak digunakan. Pada saat penulisan ini, $ 3k atau $ 14k tersisa di atas meja (tergantung pada Standar vs Perusahaan).
sumber