Kecuali jika Anda telah melakukan upaya bersama untuk mengabaikannya, Anda mungkin pernah mendengar bahwa Microsoft akan benar-benar seperti bagi Anda untuk memindahkan banyak infrastruktur database SQL Server Anda ke pusat data Microsoft, apakah Anda pergi ke Database Azure SQL (yang baru-baru ini saya bahas di sini), atau apakah Anda meng-host-nya di Mesin Virtual Windows Azure. Microsoft menyebut mesin virtual persisten ini sebagai compute instance , dan mereka memiliki dua tingkatan utama untuk dipilih, yang mencakup Tingkat Komputasi Dasar dan Tingkat Komputasi Standar. Mereka menggambarkan dua tingkatan ini sebagai:
Tingkat Komputasi Dasar :Instans komputasi tingkat baru ini serupa dalam konfigurasi dengan tingkat Standar dengan harga lebih rendah. Instans ini tidak menyertakan penyeimbang beban dan penskalaan otomatis. Mereka sangat cocok untuk aplikasi produksi instans tunggal, beban kerja pengembangan, server pengujian, dan aplikasi pemrosesan batch yang mungkin tidak memerlukan fitur ini. Tingkat komputasi dasar saat ini hanya tersedia untuk Instans Tujuan Umum. Instance ini berkisar dari Basic A0 hingga Basic A4.
Tingkat Komputasi Standar :Tingkat instans komputasi ini menyediakan kumpulan sumber daya komputasi, memori, dan I/O yang optimal untuk menjalankan beragam aplikasi. Instans ini mencakup kemampuan penskalaan otomatis dan penyeimbangan beban tanpa biaya tambahan. Tingkat komputasi standar tersedia di seluruh instans General Purpose, Memory Intensive, dan Compute Intensive. Instans ini berkisar dari Standar A0 hingga Standar A7.
Ada beberapa keuntungan penting untuk meng-hosting infrastruktur SQL Server Anda di Mesin Virtual Windows Azure. Pertama, Anda tidak memiliki biaya modal untuk penyimpanan atau perangkat keras, serta tidak ada pemeliharaan penyimpanan atau perangkat keras yang berkelanjutan. Kedua, Anda tidak memiliki biaya lisensi OS atau SQL Server (saat Anda menggunakan gambar SQL dari galeri Azure VM standar). Ketiga, Anda dapat membuat VM Azure baru yang telah menginstal SQL Server dalam beberapa menit (walaupun mungkin perlu waktu lebih lama untuk mengonfigurasi OS dan instance SQL Server sepenuhnya sesuai kebutuhan Anda). Untuk selanjutnya, Anda tetap harus menginstal pembaruan Windows dan SQL Server, tetapi Anda tidak perlu khawatir tentang hal-hal seperti pembaruan firmware, BIOS, atau driver.
Jika Anda ingin menggunakan Mesin Virtual Windows Azure untuk meng-host semua atau sebagian infrastruktur SQL Server Anda, Anda harus mengetahui detail harga saat ini yang tersedia untuk pusat data Azure tertentu yang Anda inginkan untuk menghosting mesin virtual Anda, karena harga dapat bervariasi di berbagai pusat data Microsoft. Microsoft saat ini memiliki 13 ukuran mesin virtual Windows Azure yang berbeda, sebagaimana dirinci dalam Mesin Virtual dan Ukuran Layanan Cloud untuk halaman Azure. Microsoft mengurangi harga per jam untuk instans intensif memori (Standar A5, Standar A6, dan Standar A7) sebesar 18% di sebagian besar pusat data mereka pada 1 Mei 2014, dan harga yang ditampilkan di Tabel 1 mencerminkan harga baru yang lebih rendah tersebut.
Skor Single-Core dan Skor Multi-Core di dua kolom sebelah kanan Tabel 1 adalah skor rata-rata yang saya amati menggunakan prosesor Geekbench 3.05 versi 32-bit dan benchmark memori pada sampel Windows Server 2012 R2 Datacenter VM di Pusat Data A.S. Timur. Skor ini mungkin atau mungkin tidak mewakili apa yang akan Anda lihat.
Ukuran VM | Inti CPU | Memori (GB) | Biaya Per Jam | Biaya Bulanan | Skor Single-Core | Skor Multi-Inti |
---|---|---|---|---|---|---|
A0 Dasar | 1 (dibagikan) | 0,75 | $0,018 | ~$14 | 507 | 498 |
A1 Dasar | 1 | 1.75 | $0,074 | ~$56 | 679 | 670 |
A2 Dasar | 2 | 3,50 | $0,148 | ~$1111 | 709 | 1.358 |
A3 Dasar | 4 | 7.00 | $0.296 | ~$221 | 717 | 2.472 |
A4 Dasar | 8 | 14.00 | $0,592 | ~$441 | 724 | 4,042 |
Standar A0 | 1 (dibagikan) | 0,75 | $0,020 | ~$15 | 492 | 502 |
Standar A1 | 1 | 1.75 | $0,090 | ~$67 | 1.068 | 1.083 |
Standar A2 | 2 | 3,50 | $0,180 | ~$134 | 1.069 | 2.002 |
Standar A3 | 4 | 7.00 | $0,360 | ~$268 | 1.070 | 3.593 |
Standar A4 | 8 | 14.00 | $0,720 | ~$536 | 1.094 | 6.446 |
Standar A5 | 2 | 14.00 | $0,330 | ~$246 | 1.080 | 2,026 |
Standar A6 | 4 | 28.00 | $0,660 | ~$492 | 1.080 | 3,686 |
Standar A7 | 8 | 56.00 | $1,320 | ~$983 | 1.056 | 6.185 |
Tabel 1:Spesifikasi Mesin Virtual yang Dipilih untuk Windows Azure di Pusat Data A.S. Timur
Saat ini, Microsoft memiliki sembilan pusat data yang dapat menampung mesin virtual persisten baru, yang meliputi AS Timur, AS Barat, Brasil Selatan (Pratinjau), Eropa Utara, Eropa Barat, Asia Timur, Asia Tenggara, Jepang Barat, dan Jepang Timur. Menurut Microsoft, "A1 adalah ukuran terkecil yang direkomendasikan untuk beban kerja produksi," dan Anda harus memilih "mesin virtual dengan 4 atau 8 inti CPU saat menggunakan SQL Server Enterprise Edition." Satu referensi yang berguna, jika agak tertanggal untuk menjalankan SQL Server di Mesin Virtual Windows Azure adalah Panduan Kinerja untuk SQL Server di Mesin Virtual Windows Azure yang diterbitkan pada bulan Juni 2013.
Karakteristik Mesin Virtual Windows Azure
Ketika Anda melihat properti CPU pada tab Performance di Windows Server 2012 R2 Task Manager (pada Gambar 1 dan Gambar 2), Anda akan melihat bahwa ia melaporkan bahwa ia menggunakan prosesor AMD Opteron 4171 HE 45nm yang relatif lama, berjalan pada kecepatan 2.1GHz. Prosesor enam inti khusus ini diperkenalkan pada bulan Juni 2010, sebagai bagian dari keluarga Lisbon dengan dua soket. Akhiran HE berarti bahwa itu adalah model hemat energi "bertenaga rendah" yang bukan pilihan yang baik untuk penggunaan SQL Server, karena memberikan sejumlah besar kinerja untuk jumlah yang relatif kecil dari penggunaan energi yang berkurang. Setelah melakukan penggalian, saya diberi tahu bahwa prosesor ini adalah prosesor OEM khusus untuk pusat data Microsoft.
Gambar 1:Mesin Virtual A0 Dasar di Data A.S. Timur Pusat
Gambar 2:Mesin Virtual A7 Standar di Data A.S. Timur Pusat
Masalah besar lainnya dengan prosesor ini selain usianya dan kinerja single-threaded yang relatif buruk adalah kenyataan bahwa ia hanya memiliki enam inti fisik. Ini adalah masalah dengan ukuran VM Basic A4, Standard A4, dan Standard A7, yang memiliki dua node NUMA dan delapan core fisik total. Ini berarti bahwa VM dengan ukuran itu akan melewati simpul NUMA pada host fisik yang mendasarinya, yang bukan merupakan ide yang baik untuk kinerja memori. Saya sulit percaya bahwa Microsoft akan melakukan ini dengan sengaja. Saya juga sulit percaya bahwa setiap Azure VM di setiap pusat data yang saya coba sejauh ini menggunakan prosesor AMD tua yang sama persis. Sudah menjadi rahasia umum bahwa Microsoft memiliki setidaknya tiga generasi perangkat keras yang berbeda (Gen 1, Gen 2, dan Gen 3) yang telah mereka gunakan sejauh ini di pusat data Azure mereka, menawarkan kinerja VM yang berbeda. Setelah beberapa pertanyaan lebih lanjut, saya menemukan bahwa prosesor AMD Opteron 4171 HE ini adalah prosesor Azure Gen 2.
Anda dapat menelusuri database online Geekbench 3 dari hasil benchmark yang diunggah, mencari sistem yang menggunakan prosesor AMD Opteron 4171 HE di sini. Anda mungkin memperhatikan bahwa setiap hasil untuk prosesor ini tampaknya untuk Mesin Virtual Microsoft, yang juga cukup membuat penasaran. Windows Server 2012 R2 Task Manager melaporkan cache L1 sebagai "N/A" dan bahkan tidak mencantumkan ukuran cache L2 dan L3 pada Azure VM ini. Bukti menarik lainnya adalah fakta bahwa Instans Standar memiliki skor Geekbench 3 sekitar 50% lebih tinggi daripada Instans Dasar yang setara ketika mereka memiliki jumlah inti prosesor dan ukuran memori yang sama persis, baik untuk skor Single-Core maupun Multi-Core skor. Banyaknya perbedaan ini tidak masuk akal jika mesin host yang mendasarinya sebenarnya menggunakan prosesor yang sama.
Ringkasan
Semua bukti ini awalnya membawa saya pada kesimpulan bahwa Microsoft mungkin mengaburkan prosesor yang sebenarnya di mesin host. Saya pikir mereka mungkin melakukan ini untuk mencoba mencegah orang sengaja menyediakan beberapa VM sampai mereka kebetulan menjalankan VM di perangkat keras host yang lebih baru dan lebih cepat. Ternyata Microsoft tidak terlalu pintar. Saya telah diyakinkan bahwa Microsoft tidak mengubah identitas CPU di Azure VM. Ada prosesor Azure Gen 3 yang lebih baru yang mungkin Anda dapatkan di Azure VM, saat Anda menyediakan VM baru di masa mendatang. Alasan lain yang mungkin untuk hasil saya adalah bahwa mereka cenderung menggunakan semacam tata kelola untuk membatasi kinerja VM ke tingkat yang andal dan seragam, terlepas dari perangkat keras host yang mendasarinya, sehingga mereka dapat menghosting lebih banyak VM pada perangkat keras yang lebih sedikit dari waktu ke waktu. Ini akan menjadi tindakan yang cerdas untuk penghosting IaaS.
Skor Geekbench 3.05 yang relatif rendah (lihat Gambar 3) bahkan untuk Azure VMs terbesar berarti Anda memberikan sejumlah besar kinerja prosesor dan memori dibandingkan dengan server dua soket fisik yang setara dengan jumlah inti prosesor dan memori yang sama.
Gambar 3:Hasil Geekbench 3.05 32-bit untuk Standar Mesin Virtual A4 di Pusat Data A.S. Timur
Banyak beban kerja SQL Server akan berjalan sangat baik dengan tingkat kinerja VM ini, meskipun sedikit lebih lambat dari biasanya. Jika Anda memperhitungkan penghematan lisensi SQL Server 2014 Enterprise Edition dari mesin delapan inti, ditambah belanja modal untuk server dua soket sederhana dan penyimpanan terkait, Anda dapat menjalankan mesin virtual A7 Standar 24×7 selama sekitar lima sampai enam tahun. Mengingat ROI semacam itu, saya dapat melihat banyak organisasi membuat keputusan ekonomi untuk memindahkan setidaknya sebagian infrastruktur SQL Server mereka ke Mesin Virtual Azure. Selama beban kerja Anda dapat berjalan pada VM 56GB atau lebih kecil, dan selama memiliki kinerja CPU dan memori yang lebih sedikit daripada laptop vintage baru-baru ini juga dapat diterima, ini adalah tindakan yang rasional. Microsoft baru-baru ini mengumumkan ketersediaan Instans Intensif A8 dan A9 VM yang lebih besar dan lebih cepat, yang menggunakan prosesor Intel Xeon E5-2670. Ini akan menjadi peningkatan besar dalam kinerja dibandingkan prosesor Azure Gen 2.
Saya akan melihat kinerja I/O di Azure Virtual Machines di artikel mendatang.