it-swarm.asia

Apa praktik terbaik untuk menjalankan SQL Server di Mesin Virtual?

Apa praktik terbaik untuk menjalankan SQL Server di Mesin Virtual? Aktivitas transaksi online saya sangat rendah, tetapi ada sejumlah besar pemrosesan data untuk tujuan menyediakan data pelaporan ke beberapa situs web.

21
JerryOL

Seperti halnya mesin fisik IO adalah raja. Akan ada hit IO hit dari virtualisasi (berapa banyak hit tergantung pada teknologi yang Anda pilih), jadi pastikan bahwa Anda tidak melakukan apa pun yang dapat memperburuk ini dan membahayakan IO kinerja lebih lanjut.

  • Ukuran tetap yang selalu digunakan, bukan disk virtual dinamis, dan memastikan bahwa drive/array yang mendasarinya cukup. Vdisks dinamis kurang berkinerja daripada yang ukuran tetap.
  • Jika data dalam VM tidak kritis misi, aktifkan kemampuan solusi VM untuk cache menulis (secara efektif berbohong kepada OS tamu tentang kapan hal-hal secara fisik ditulis ke disk) untuk kinerja tambahan. berguna untuk mesin pengembangan dan pengujian di mana data mudah diganti, atau replika hanya-baca yang bersifat lokal untuk master yang dapat dibuat kembali jika mereka mengalami masalah, tetapi disarankan agar opsi tersebut tidak digunakan untuk produksi dan sistem cadangan saat mereka tingkatkan kemungkinan kehilangan data (atau lebih buruk, korupsi) jika mesin mati secara tak terduga.
  • Pastikan bahwa setiap VM memiliki cukup RAM didedikasikan untuk itu sehingga set kerja normal setiap basis data masuk ke memori dengan jumlah ruang yang cukup untuk dihindarkan untuk menghindari IO yang tidak perlu. Juga, pastikan bahwa hypervisor tidak akan mengeluarkan VMs RAM kapan saja (misalnya sebagian besar produk VMWare dapat melakukan ini, yang memungkinkan Anda untuk menjalankan set VM yang lebih besar daripada Anda) kalau tidak bisa pada perangkat keras yang sama, tetapi penurunan kinerja bisa sangat besar - ada opsi untuk menyetel atau mematikan perilaku ini).
  • Jika Host menggunakan array RAID5, pertimbangkan untuk pindah ke RAID10. Ini akan mengurangi ruang yang tersedia tetapi menghapus masalah kinerja penulisan yang dapat terlihat dengan RAID5 (atau 6).
  • Untuk VM yang cenderung melihat banyak aktivitas IO, pertimbangkan untuk memberi mereka drive atau larik mereka sendiri, atau hanya minta mereka membagikan drive/larik mereka dengan data yang melihat aktivitas rendah.

Tentu saja jika seluruh DB Anda (dan yang lainnya VM sedang berjalan) cocok dengan RAM dialokasikan untuk VM dan ia melihat sangat sedikit aktivitas menulis, IO kinerja bisa menjadi masalah yang jauh lebih sedikit.

Edit: beberapa poin lagi:

  • Jika menggunakan disk virtual, pastikan bahwa tipe pengontrol terbaik digunakan untuk kinerja. Beberapa solusi virtualisasi menawarkan beberapa jenis pengontrol virtual untuk kompatibilitas tamu yang lebih baik dan Anda mungkin menemukan beberapa jenis yang kurang efisien daripada yang lain karena keterbatasan protokol dalam desain yang mereka tiru dan keterbatasan dalam driver OS tamu.
  • Jika solusi virtualisasi Anda menawarkan driver khusus untuk pengontrol drive virtual, pastikan OS tamu Anda menggunakannya - ini dapat mempercepat bulk IO dengan mengurangi jumlah salinan memori ke memori dan Host <-> hypervisor <-> konteks tamu beralih yang terlibat dalam beberapa operasi.
  • Dua poin di atas berlaku jika Anda menggunakan penyimpanan jaringan seperti sederhana SMB saham atau iSCSI juga: pastikan bahwa Anda menggunakan pengontrol jaringan virtual paling efisien yang ditawarkan dan bahwa OS tamu Anda menggunakan driver yang disarankan untuk itu, jika tidak latensi dan bandwidth mungkin lebih terbatas daripada yang dibutuhkan oleh lapisan virtualisasi.
18
David Spillett