Bagikan melalui


Kumpulan garis besar: Praktik terbaik performa untuk SQL Server di komputer virtual Azure

Berlaku untuk: SQL Server di Azure VM

Artikel ini menyediakan informasi untuk mengumpulkan garis besar performa sebagai serangkaian praktik dan panduan terbaik untuk mengoptimalkan performa untuk SQL Server Anda di Azure Virtual Machines (komputer virtual).

Biasanya ada konsekuensi antara mengoptimalkan biaya dan mengoptimalkan performa. Serangkaian praktik terbaik performa ini difokuskan untuk mendapatkan performa terbaik untuk SQL Server di Azure Virtual Machines. Jika beban kerja Anda tidak terlalu berat, Anda mungkin tidak memerlukan setiap pengoptimalan yang direkomendasikan. Pertimbangkan kebutuhan performa, biaya, dan pola beban kerja Anda saat Anda mengevaluasi rekomendasi ini.

Gambaran Umum

Untuk pendekatan preskriptif, kumpulkan penghitung kinerja menggunakan PerfMon/LogMan dan ambil statistik tunggu SQL Server untuk lebih memahami tekanan umum dan potensi hambatan lingkungan sumber.

Mulailah dengan mengumpulkan CPU, memori, IOPS, throughput, dan latensi beban kerja sumber pada waktu sibuk sesuai daftar periksa performa aplikasi.

Kumpulkan data selama jam sibuk seperti beban kerja selama hari kerja biasa Anda, serta proses beban tinggi lainnya seperti pemrosesan akhir hari, dan beban kerja ETL akhir pekan. Pertimbangkan untuk meningkatkan sumber daya Anda untuk beban kerja yang berat secara atipikal, seperti pemrosesan akhir kuartal, lalu penskalaan yang dilakukan setelah beban kerja selesai.

Gunakan analisis performa untuk memilih Ukuran komputer virtual yang dapat menskalakan ke persyaratan performa beban kerja Anda.

Penyimpanan

Performa SQL Server sangat bergantung pada subsistem I/O dan performa penyimpanan diukur oleh IOPS dan throughput. Kecuali database Anda cocok dengan memori fisik, SQL Server terus-menerus membawa halaman database masuk dan keluar dari kumpulan buffer. File data untuk SQL Server harus diperlakukan secara berbeda. Akses ke file log berurutan kecuali ketika transaksi perlu digulung balik di mana file data, termasuk tempdb, diakses secara acak. Jika Anda memiliki subsistem I/O yang lambat, pengguna Anda mungkin mengalami masalah performa seperti waktu respons lambat dan tugas yang tidak selesai karena waktu habis.

Komputer virtual Azure Marketplace memiliki file log di disk fisik yang terpisah dari file data secara default. Jumlah tempdb dan ukuran file data memenuhi praktik terbaik dan ditargetkan ke D:\ drive sementara.

Penghitung PerfMon berikut dapat membantu memvalidasi throughput IO yang diperlukan oleh SQL Server Anda:

  • \LogicalDisk\Disk Reads/Sec (IOPS baca)
  • \LogicalDisk\Disk Writes/Sec (IOPS tulis)
  • \LogicalDisk\Disk Read Bytes/Sec (persyaratan throughput baca untuk data, log, dan tempdb file)
  • \LogicalDisk\Disk Write Bytes/Sec (persyaratan throughput tulis untuk data, log, dan tempdb file)

Menggunakan persyaratan IOPS dan throughput pada tingkat puncak, evaluasi ukuran komputer virtual yang sesuai dengan kapasitas dari pengukuran Anda.

Jika beban kerja Anda memerlukan IOPS baca 20K dan IOPS tulis 10K, Anda dapat memilih E16s_v3 (dengan hingga 32K yang sudah di-cache dan 25600 IOPS yang belum di-cache) atau M16_s (dengan hingga 20K yang sudah di-cache dan IOPS 10K yang belum di-cache) dengan 2 disk P30 yang di-strip menggunakan Ruang Penyimpanan.

Pastikan untuk memahami persyaratan throughput dan IOPS dari beban kerja karena komputer virtual memiliki batas skala yang berbeda untuk IOPS dan throughput.

Memori

Lacak kedua memori eksternal yang digunakan oleh OS serta memori yang digunakan secara internal oleh SQL Server. Mengidentifikasi tekanan untuk salah satu komponen akan membantu ukuran komputer virtual dan mengidentifikasi peluang untuk penyetelan.

Penghitung PerfMon berikut dapat membantu memvalidasi kesehatan memori komputer virtual SQL Server:

Compute

Komputasi di Azure dikelola secara berbeda dari di lokal. Server lokal dibangun untuk bertahan beberapa tahun tanpa peningkatan karena overhead manajemen dan biaya memperoleh perangkat keras baru. Virtualisasi mengurangi beberapa masalah tersebut tetapi aplikasi dioptimalkan untuk memanfaatkan perangkat keras yang mendasarinya, yang berarti setiap perubahan signifikan pada konsumsi sumber daya membutuhkan penyeimbangan kembali seluruh lingkungan fisik.

Ini bukanlah tantangan di Azure di mana komputer virtual baru pada rangkaian perangkat keras yang berbeda, dan bahkan di wilayah yang berbeda, mudah dicapai.

Di Azure, Anda ingin memanfaatkan sebanyak mungkin sumber daya komputer virtual, oleh karena itu, komputer virtual Azure harus dikonfigurasi untuk menjaga CPU rata-rata setinggi mungkin tanpa memengaruhi beban kerja.

Penghitung PerfMon berikut dapat membantu memvalidasi kesehatan komputasi komputer virtual SQL Server:

  • \Informasi Prosesor(_Total)% Waktu Prosesor
  • \Process(sqlservr)% Waktu Prosesor

Catatan

Idealnya, cobalah untuk menggunakan 80% komputasi Anda, dengan puncak di atas 90% tetapi tidak mencapai 100% untuk jangka waktu yang berkelanjutan. Pada dasarnya, Anda hanya ingin memprovisikan komputasi kebutuhan aplikasi dan kemudian berencana untuk meningkatkan atau menurunkan skala sesuai kebutuhan bisnis.

Langkah berikutnya

Untuk mempelajari selengkapnya, lihat artikel lain dalam seri praktik terbaik ini:

Untuk praktik keamanan terbaik, lihat Pertimbangan keamanan untuk SQL Server di Azure Virtual Machines.

Tinjau artikel komputer virtual SQL Server lainnya di Ringkasan SQL Server di Azure Virtual Machines. Jika Anda mempunyai pertanyaan tentang komputer virtual SQL Server, lihat Tanya Jawab Umum.