Berapa frekuensi hash / sortir yang tumpah ke tempdb?

10

Aplikasi perusahaan kami menggunakan SQL Server untuk penyimpanan data dan terutama merupakan sistem OLTP. Namun, komponen penting dari aplikasi kami menghasilkan beban kerja OLAP yang signifikan.

Latensi tulis ke tempdb kami sekitar 100 ms. Tren ini memegang lebih dari waktu, dan ALLOW_SNAPSHOT_ISOLATIONdihidupkan off . Kami sedang memecahkan masalah tentang masalah ini dan satu-satunya hal menarik yang kami temukan sejauh ini adalah ada sejumlah besar hash dan sortir tumpahan ke tempdb. Kami menduga ini berasal dari beban kerja OLAP kami.

Pertanyaan

Berapa frekuensi tumpahan yang memprihatinkan? Apa saja? Berapa banyak tumpahan / detik? Data awal kami menunjukkan bahwa kami memiliki sekitar 2 tumpahan hash per detik dan 25 jenis tumpahan per menit.

Mungkinkah frekuensi tumpahan ini bisa menjadi penyebab utama dalam latensi tulis tempdb kami yang tinggi?

Informasi lainnya

Kami menggunakan banyak file untuk tempdb sesuai anjuran per jumlah inti. File tempdb berada pada RAID 1 + 0 SAN (dengan SSD kinerja tinggi) tapi itu perangkat yang sama dengan data DB utama dan file log. File tempdb berukuran cukup besar sehingga jarang tumbuh. Kami tidak menggunakan jejak jejak 1117 atau 1118. Variabel lain adalah bahwa pengaturan ini dibagi untuk sejumlah database berbeda yang semuanya mengalami beban sedang hingga tinggi.

Latensi tulis 100 ms kami jauh lebih besar daripada rentang yang dapat diterima untuk latensi tulis tempdb yang kami temukan di MSDN, Keterampilan SQL, dan situs lainnya. Namun, menulis latensi untuk database kami yang lain adalah baik (di bawah 10 ms) Berdasarkan statistik lain, tampaknya kami menggunakan tempdb, terutama untuk objek internal. Jadi kami menggali untuk mencari tahu mengapa aplikasi kami menggunakan objek internal begitu berat.

Kami memiliki masalah kinerja nyata pada platform kami yang bermanifestasi dalam berbagai cara. Kami telah memantau penghitung kinerja, melihat tampilan DM, dan menganalisis perilaku aplikasi kami untuk mencoba menggali karakteristik penggunaan sumber daya sistem kami. Kami fokus pada tumpahan sekarang karena kami telah membaca bahwa tumpahan memiliki dampak negatif yang drastis karena dilakukan pada disk alih-alih dalam memori. Dan kami tampaknya memiliki jumlah tumpahan yang sangat tinggi, tetapi saya ingin mendapatkan masukan tentang apa yang dianggap "tinggi" oleh orang-orang.

Matthew Rodatus
sumber

Jawaban:

12

Mungkinkah frekuensi tumpahan ini bisa menjadi penyebab utama dalam latensi tulis tempdb kami yang tinggi?

Ya itu mungkin , meskipun biasanya ukuran rata-rata tumpahan, dan seberapa dalam tumpahannya (yaitu tumpahan hash rekursif, jenis multi-pass) yang lebih penting daripada frekuensi per se.

SQL Server menyediakan berbagai metrik dan informasi DMV untuk membantu Anda memecahkan berbagai faktor yang berkontribusi terhadap tekanan tempdb, banyak di antaranya dibahas dalam Artikel Teknis Microsoft, "Bekerja dengan tempdb di SQL Server 2005" (berlaku untuk semua versi 2005 dan seterusnya ).

Anda harus dapat menggunakan panduan dan pertanyaan diagnostik yang terkandung dalam dokumen itu untuk mulai mengidentifikasi penyebab utama tekanan tempdb. Jangan abaikan misalnya aktivitas versi toko hanya karena ALLOW_SNAPSHOT_ISOLATIONtidak diaktifkan. Banyak fitur menggunakan versi store (mis. Trigger, MARS, RCSI) selain dari isolasi snapshot.

Jika tumpahan sortir dan hash berubah menjadi signifikan pada tingkat tinggi, Anda mungkin perlu mengatur beberapa pemantauan khusus untuk ini. Tergantung sedikit pada versi SQL Server Anda, ini tidak selalu mudah seperti yang diharapkan. Untuk menghubungkan sortir dan hash tumpahan dengan kueri tertentu yang menyebabkan mereka membutuhkan Pemberitahuan Acara atau Diperpanjang Acara. Artikel SolidQ, " Identifikasi dan Memecahkan Peringatan Sortir " berisi rincian dan beberapa saran umum yang baik tentang menyelesaikan penyebab umum.

Anda juga harus bekerja dengan tim penyimpanan Anda untuk menentukan berapa banyak latensi tinggi yang disebabkan oleh beban kerja Anda, berapa banyak berasal dari penggunaan bersama lainnya, dan opsi apa yang ada untuk konfigurasi ulang. Analisis Anda terhadap metrik SQL Server akan membantu menginformasikan diskusi ini, seperti halnya metrik apa pun yang dapat disediakan oleh SAN.

Paul White 9
sumber