View a markdown version of this page

Menyetel beban kerja kueri Anda - AWS Bimbingan Preskriptif

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menyetel beban kerja kueri Anda

Beban kerja yang disetel dengan baik akan membawa Anda jauh dalam mencapai solusi stabil untuk pertumbuhan berlebih. Jika beban kerja Anda tidak disetel dengan baik, apa pun kekuatan cluster Amazon Aurora yang Anda gunakan, Anda akan mengalami kemacetan yang akan menurunkan kinerja dan memengaruhi pengalaman pengguna aplikasi Anda. Praktik terbaik adalah memiliki proses sejak awal yang membantu Anda mengidentifikasi dan menyetel pertanyaan bermasalah di sistem Anda.

Melacak dan menyetel kueri bermasalah di beban kerja Anda

Saat menghadapi hypergrowth, memiliki beban kerja yang disetel dengan baik adalah setengah dari pertempuran yang dimenangkan. Untuk memahami sifat beban kerja real-time dan masalah kinerja yang dihadapi cluster Aurora Anda, pastikan bahwa tim Anda mengumpulkan pertanyaan bermasalah dari penulis dan instance pembaca Anda. Kueri bermasalah ini perlu disetel agar beban kerja Anda berjalan pada kondisi optimal. Amazon Aurora Edisi yang kompatibel dengan MySQL memberi Anda dua cara untuk mencapai hal ini:

  • Wawasan Performa

  • Log kueri lambat

Menggunakan Performance Insights

Performance Insights melacak beban pada penulis Aurora atau instance pembaca berdasarkan rata-rata sesi aktif (AAS). Nilai AAS dihitung dengan menggunakan sampling dan jumlah sesi aktif yang menunggu CPU untuk mengambil beban kerja kueri mereka dan memprosesnya. Performance Insights menyediakan antarmuka grafis tempat Anda dapat memeriksa pernyataan SQL yang menyebabkan beban tertinggi dengan menunggu sesi aktif.

Grafik dan bagan Peformance Insights.

Pada tangkapan layar sebelumnya, panggilan ke prosedur yang my_sqrt disimpan menyebabkan rata-rata 13, 03 sesi menunggu muatannya diproses. Langkah logis selanjutnya adalah menyetel prosedur ini. Anda harus mengidentifikasi pernyataan SQL pada pembaca dan penulis yang menyebabkan pemuatan pada instans masing-masing dan menyetelnya untuk meningkatkan kinerja hingga nilai AAS turun dan tetap berada di bawah garis putus-putus vCPU Maks di Performance Insights. Jika Anda telah mencapai batas tertinggi dengan upaya penyetelan Anda dan masih melihat AAS di atas garis vCPU Max, Anda dapat memilih kelas instans yang lebih besar untuk menangani beban kerja Anda. Jangan memilih instance yang lebih besar tanpa terlebih dahulu mencoba menyetel beban kerja kueri Anda, karena lalu lintas yang meningkat akan mulai mengekspos garis kesalahan yang dibuat oleh kueri buruk di beban kerja Anda.

Menggunakan log kueri lambat dan menerbitkannya ke CloudWatch

Log kueri lambat adalah fitur MySQL asli dan melengkapi Performance Insights. Praktik terbaik adalah menggunakan kedua metode ini untuk tetap berada di depan pertanyaan bermasalah yang dapat menyebabkan malapetaka pada instans Anda. Log kueri lambat mencatat kueri apa pun yang lebih lambat dari variabel dinamislong_query_time. Variabel ini dapat diatur tanpa restart ke instance cluster Anda.

Untuk memberikan fleksibilitas dan isolasi dalam latihan penyetelan, gunakan kelompok parameter terpisah untuk instance penulis dan pembaca Anda. Ini sangat penting jika Anda menggunakan pembagian baca-tulis. Siapkan batas yang nyaman untuk long_query_time instans klaster Anda berdasarkan kebutuhan Anda. Saat Anda menyetel beban, Anda dapat membidik nilai agresif dalam long_query_time variabel, karena Anda dapat mengatur ambang batas pada tingkat milidetik. Dengan konkurensi tinggi dan beban kerja yang disetel dengan baik, hampir semua kueri Anda harus berjalan dalam milidetik.

Saat Anda mengatur Amazon Aurora MySQL Compatible Edition untuk mencatat kueri lambat ke file, Aurora MySQL yang kompatibel akan menulis log kueri lambat ke sistem file yang kompatibel dengan Aurora MySQL dan menyimpannya selama 24 jam. Untuk menyimpan log kueri lambat untuk jangka waktu yang lebih lama untuk analisis, publikasikan ke Amazon CloudWatch. Anda juga dapat membuat CloudWatch Dasbor untuk memantau kueri lambat Anda. Untuk informasi selengkapnya, lihat posting blog Membuat CloudWatch dasbor Amazon untuk memantau Amazon RDS dan Amazon Aurora MySQL. Selain menganalisis kueri lambat Anda di Amazon CloudWatch, Anda dapat membuat profil log kueri lambat dengan menggunakan pt-query-digest, alat di Percona Toolkit.

Anda juga dapat memilih untuk mengotomatiskan proses pengunduhan dan pembuatan profil kueri ini untuk efisiensi yang lebih tinggi di tim Anda. Tim Anda harus memeriksa kueri yang sering berjalan dan untuk interval yang lebih lama, dan memprioritaskan penyetelannya. Bertujuan untuk keadaan di mana sangat sedikit kueri yang dicatat di log kueri lambat Anda, dan Anda dapat mengurangi long_query_time untuk menjadi lebih agresif seperti yang Anda pahami dan sesuaikan beban kerja Anda.