Mengapa Azure SQL Server saya sangat lambat?

10

Kami saat ini memiliki VM yang sangat kurang bertenaga dan mengusulkan untuk pindah ke VM Azure dengan spesifikasi yang lebih baik. Masalahnya adalah, VM Azure jauh lebih lambat dari VM asli meskipun memiliki spesifikasi yang lebih tinggi.

Server asli adalah VM 2 inti dengan memori 2GB yang juga merupakan server web. Ini menjalankan Microsoft SQL Server Web Edition 2008 R2 dan karena server ini digunakan untuk hal-hal lain, kami harus membatasi memori server maksimum dalam SQL Server hingga 512MB .

Server baru adalah VM inti 4 dengan memori 7GB yang hanya merupakan server basis data. Ini menjalankan Microsoft SQL Server Edisi Standar 2008 R2 dan kami belum membatasi jumlah memori yang dapat digunakan SQL Server.

Ini adalah salah satu dari dua server yang diatur dalam lingkungan yang dicerminkan tetapi basis data yang saya jalankan tidak dicerminkan. Database lain di server ini tidak mendapatkan banyak lalu lintas saat ini (pada kenyataannya, Activity Monitor tidak menunjukkan aktivitas pada DB lain saat saya menjalankan tes ini).

Saya menyadari bahwa masalah dengan Azure VMs adalah bahwa hard drive adalah sumber daya jaringan sehingga akan menjadi sumber melambat tetapi masih lebih lambat bahkan ketika ada 0 pembacaan fisik yang ditunjukkan dalam statistik IO.

Saya telah mengikuti saran pencarian pada halaman ini pada Azure VM termasuk striping disk (dua disk per drive) dan meletakkan log dan file data pada drive yang terpisah.

Satu-satunya hal yang belum saya lakukan adalah mengaktifkan kompresi halaman, membatasi tumbuh otomatis pada database dan memindahkan log kesalahan server SQL dan melacak direktori file ke disk data. Saya belum melakukan itu di server lama juga.

Server lama tidak melakukan penyetelan ini dan file log dan data berada di drive yang sama yang tidak bergaris.

Basis data di server saat ini adalah 65 GB (45 data dan 20 log) yang agak terlalu besar untuk ditransfer ke server baru jadi saya menguji pada DB yang lebih kecil (6 data dan 13,5 log)

Hasil pada server lama CPU time = 1311 ms, elapsed time = 1057 ms.dan pada server baru CPU time = 1281 ms, elapsed time = 2525 ms. Itu hanya satu kali berjalan tetapi hasilnya representatif dari apa yang biasanya saya lihat.

Server baru tampaknya memiliki waktu yang berlalu secara signifikan lebih lama daripada waktu CPU. Apakah itu masalah dan apakah ada sesuatu yang bisa saya lakukan untuk melacak apa yang menyebabkannya?

Apa langkah lain yang bisa saya ambil untuk mencari tahu mengapa server ini berjalan sangat lambat ketika sepertinya harus lebih cepat dari server lama?

Steve Kaye
sumber
1
Maxdop 1? Apakah Anda membandingkan rencana eksekusi, mengambil statistik menunggu sebelum dan sesudah, dan memeriksa pemblokiran?
Aaron Bertrand
1
Berapa banyak drive data? Dengan penyimpanan gumpalan halaman standar, setiap drive terbatas pada yang lebih rendah dari 300 IOPS di tingkat dasar atau 500 di standar, yang jauh lebih sedikit daripada disk berputar di tempat. Sangat penting untuk memiliki sebanyak mungkin drive (vhd) untuk memaksimalkan IOPS dan bandwidth. Anda dapat menggunakan Windows Storage Spaces untuk menghindari keharusan membuat file data terpisah di setiap drive.
Dan Guzman
Server baru memiliki 4 VHD bergaris menjadi dua drive jadi saya punya 1000 IOPS untuk log dan 1000 IOPS untuk data.
Steve Kaye
Penyimpanan blog halaman standar VHD hanya menyediakan bandwidth sekitar 30MB / detik karena pembatasan sehingga hanya agregat 60MB / detik. Pertimbangkan untuk membuat 14 VHD data hingga 420MB / detik dan striping di antara semuanya.
Dan Guzman
Saya hanya dapat memiliki 8 disk karena ini adalah instance A3 jadi saya harus memutakhirkan ke A4 untuk melakukan hal yang harganya dua kali lipat. Saya tidak berpikir bahwa ini adalah masalah drive karena tes di atas semuanya memiliki 0 pembacaan fisik yang tercantum pada statistik IO.
Steve Kaye

Jawaban:

2

Untuk apa yang layak, saya akhirnya mengubah VM di Azure dari tipe A ke tipe D dan kemudian melampirkan disk lain dan memindahkan TEMPDB ke disk itu. Jadi VM terakhir saya sekarang adalah Standar D2 dengan 7 GB RAM dan tiga disk data, satu untuk file MDF, satu lagi untuk file LDF dan disk TEMPDB baru.

Saya menyerah mencoba memahami dengan A3 beberapa hal yang Anda sebutkan dan hanya meningkatkan mesin virtual. Saya bahkan beralih dari A2 ke A3 dan meskipun saya menemukan beberapa perbaikan, saya akhirnya berubah menjadi D2 VM.

Dalam dokumen yang Anda nyatakan, Microsoft merekomendasikan D3 untuk Edisi Perusahaan atau D2 untuk Web atau Edisi Standar, dan penggunaan Penyimpanan Premium, di antara hal-hal lain dalam daftar periksa di awal dokumen.

Guillermo Taylor
sumber