SQL Server 2008 R2 penyebab Buffer I / O tinggi

8

Sedang mencoba memecahkan masalah kinerja pada SQL Server yang kami miliki untuk server manajemen dokumen kami dan kinerja hari ini telah mencapai titik terendah sepanjang masa.

Melihat Management Data Warehouse (MDW) yang saya setup baru-baru ini, saya bisa melihat lonjakan besar dalam Buffer I / O. Waktu tunggu SQL gabungan berada di wilayah 1500-2000 ms yang jauh lebih tinggi dari biasanya (sekitar 500 ms). Proporsi besar peningkatan ini adalah Buffer I / O.

Tidak menjadi DBA dan melakukan ini karena kebutuhan, saya secara besar-besaran keluar dari kedalaman saya.

Apakah ada cara untuk mengatakan mengapa ada peningkatan besar dalam Buffer I / O? Apakah ini kemungkinan disebabkan oleh permintaan yang menarik sejumlah besar data atau konfigurasi yang tidak benar dari batas memori SQL Server? Apakah ada sesuatu yang spesifik (atau umum dalam hal ini) yang harus saya perhatikan atau DMV yang saya dapat minta untuk membantu memecahkan masalah?

Servernya adalah SQL Server 2008 R2. Ini adalah VM yang menjalankan dua vCPU dan 8GB RAM dengan disk di-host pada larik terpisah pada SAN.

masukkan deskripsi gambar di sini

Grafik di atas semua dihasilkan menggunakan Gudang Data Manajemen SQL Server .

Tim Alexander
sumber

Jawaban:

9

Jika Anda melihat dengan seksama pada grafik menunggu, bar berwarna sebenarnya menunjukkan kunci menunggu, bukan menunggu I / O.

Juga, grafik I / O menunjukkan peningkatan penggunaan disk sistem , bukan penggunaan disk SQL Server .

Mengingat bahwa grafik memori mendekati ukuran memori sistem Anda karena pemanfaatan sistem meningkat dari waktu ke waktu, saya yakin instance Anda terlalu berkomitmen untuk pengaturan memori server maks saat ini (atau pengaturan memori server maks tidak diatur sama sekali), dan satu atau lebih banyak kumpulan memori SQL Server yang bertukar ke disk.

Solusinya adalah menurunkan pengaturan memori server maks (atau mengaturnya ke nilai yang sesuai jika tidak diatur). Silakan lihat jawaban saya di sini untuk jawaban yang lebih mendalam dari skenario yang sama, dan posting blog saya:

Apakah memori SQL Server saya terlalu berkomitmen?

Jon Seigel
sumber