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?
sumber
Jawaban:
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.
sumber