Bagikan melalui


MSSQLSERVER_17883

Berlaku untuk: SQL Server

Detail

Atribut Nilai
Nama Produk SQL Server
ID Peristiwa 17883
Sumber Kejadian MSSQLSERVER
Komponen SQLEngine
Nama Simbolis SRV_SCHEDULER_NONYIELDING
Teks Pesan Proses %ld:%ld:%ld (0x%lx) Pekerja 0x%p tampaknya tidak menghasilkan pada Scheduler %ld. Waktu pembuatan utas: %I64d. Approx Thread CPU Digunakan: kernel %I64d ms, pengguna %I64d ms. Pemanfaatan Proses %d%%. Sistem Menganggur %d%%. Interval: %I64d ms.

Penjelasan

Menunjukkan bahwa ada kemungkinan masalah dengan utas yang tidak menghasilkan penjadwal. Kesalahan ini mungkin disebabkan oleh kondisi sistem operasi, masalah lingkungan, atau masalah perangkat lunak di SQL Server, atau jika SQL Server tidak mendapatkan siklus yang cukup untuk dijalankan. Kesalahan ini mungkin hilang jika utas akhirnya menghasilkan.

Tindakan pengguna

Jika Anda melihat informasi pesan kesalahan, Anda melihat bahwa perilaku tertentu muncul. Contohnya:

  • Jika waktu mode pengguna dengan cepat memanjat dan terus melakukannya, kemungkinan penyebabnya adalah perulangan yang tidak terbatas di mesin SQL Server yang tidak menghasilkan dengan benar.

  • Jika waktu mode kernel naik dengan cepat, utas menghabiskan sebagian besar waktunya dalam sistem operasi, dan memerlukan debugging kernel untuk menentukan akar penyebab perilaku ini.

  • Jika waktu kernel dan waktu pengguna tidak meningkat dengan cepat, utas kemungkinan menunggu panggilan API seperti WaitForSingleObject, Sleep, WriteFile, atau ReadFile untuk kembali. Atau, utas mungkin tidak dijadwalkan oleh sistem operasi. Kondisi kios API umumnya memerlukan debugging mode kernel untuk menentukan akar penyebabnya.

  • Jika System Idle % rendah dan Process Utilization % rendah, maka SQL Server mungkin tidak mendapatkan siklus CPU yang cukup. Periksa pemanfaatan CPU aplikasi lain pada sistem. Selain itu, periksa untuk melihat apakah penomor terjadi dalam sistem. Menjalankan SELECT * FROM sys.dm_os_ring_buffers juga dapat memberikan detail lebih lanjut.

  • Jika kernel + user waktu rendah tetapi Process Utilization % tinggi, kondisi kesalahan dapat menunjukkan bahwa utas preemptive mengkonsumsi semua CPU (misalnya, pengumpulan sampah).

Menggabungkan informasi dengan pemanfaatan sistem dan waktu diam dapat memberikan wawasan tentang sifat masalah.

Untuk memahami logika deteksi dan alasan umum yang menghasilkan kondisi kesalahan ini, lihat Cara Mendiagnosis dan Memperbaiki Kesalahan 17883, 17884, 17887, dan 17888.