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?