TempDB Contention dengan 24 file tempdb fisik pada 48 core AMD Opteron box

8

Saya baru saja menerima pemberitahuan berikut tentang contoh SQL Server 2005. Contoh ini memiliki rasio file inti-ke-tempdb 2: 1 untuk jumlah file tempdb total 24 file. Pertentangan seharusnya tidak terjadi - bagaimana saya mendeteksi sumber pertengkaran ini? TempDB dan semua basis data lainnya ada di penyimpanan SAN melalui Ethernet 10 GB. SAN memiliki 46 SAS drive 10k yang dikonfigurasi dalam satu array RAID-60. Array ini dibagi dengan beberapa server VMWare dan satu atau dua server Exchange.

Pemberitahuan dari Idera SQL Diagnostic Manager:

11/8/2012 10:49:00 PM, Tempdb Contention (ms) di MGSQL01 adalah Kritis.

Pertempuran tempdb latch telah terdeteksi di MGSQL01. Total waktu tunggu yang terdeteksi adalah 1782 milidetik. Ini merupakan indikasi bahwa kinerja sedang dipengaruhi oleh pertikaian pada peta alokasi di tempdb. Jika ini merupakan masalah biasa, ini dapat diatasi dengan mengikuti praktik terbaik terkait dengan jumlah file tempdb, ukuran, dan subsistem IO.

Waktu Tunggu PFS: 1782 ms Waktu Tunggu GAM: 0 ms Waktu Tunggu SGAM: 0 ms

Tempdb Contention (ms): Waktu tunggu saat ini untuk peta alokasi tempdb (GAM, SGAM, dan PFS), dalam milidetik. Lansiran ini hanya dapat dinaikkan pada instance yang menjalankan SQL 2005 atau di atasnya.

Max Vernon
sumber
1
Heya Max, hanya beberapa pertanyaan cepat. Saya harus berurusan dengan masalah yang sama baru-baru ini. -Apakah itu pagelatch_SH atau pageiolatch_SH? Saya cukup yakin itu pagelatch_SH dalam kasus Anda, tetapi saya hanya ingin memastikan. -Apakah Anda menggunakan acara yang diperluas untuk melacak kueri mana yang mengumpulkan waktu tunggu paling PAGELATCH_SH? Bisakah Anda juga memposting 20 statistik menunggu teratas dari SELECT * FROM SYS.DM_OS_WAIT_STATS ORDER OLEH 3 Apa yang dikatakan perfmon kepada Anda? Apakah drive TempDB sebenarnya mengalami pertentangan IO nyata? Lonjakan MS?
Ali Razeghi
2
Apakah menunggu di halaman PFS dalam file tertentu atau semuanya? Apakah semua file tempdb berukuran sama? Apakah Anda tahu jenis / ukuran objek apa yang dialokasikan di tempdb? Apakah tabel sementara secara eksplisit dipotong dan dijatuhkan oleh kode aplikasi? Pernahkah Anda berpikir tentang menerapkan jejak bendera 1118?
Selat darin
2
@ MaxVernon: Sebagai aturan praktis, selalu jalankan T1118. Tidak ada alasan untuk berlari tanpanya
Thomas Kejser
1
@ Maxvernon, saya memberi +1 item terhubung Anda. Bagus
Edward Dortland

Jawaban:

5

Bendera jejak 1118 memaksa alokasi luas yang seragam alih-alih alokasi halaman campuran. Bendera jejak biasanya digunakan untuk membantu skalabilitas TEMPDB dengan menghindari SGAM dan poin pertentangan alokasi lainnya. Jika Anda memiliki SQL Server 2008 atau SQL Server 2005 dan perbaikan diterapkan dan masih menghadapi pertengkaran TEMPDB, pertimbangkan jejak flag 1118 untuk bantuan lebih lanjut dalam menyelesaikan pertengkaran.

Troy
sumber
1
Bisakah Anda menjelaskan, lebih disukai dengan contoh, bagaimana mengubah dari alokasi bersama satu halaman ke alokasi tingkat khusus akan menyelesaikan pertengkaran PFS?
Edward Dortland