全部产品
Search
文档中心

ApsaraDB RDS:Memecahkan masalah yang menyebabkan jumlah thread aktif berlebihan pada instance ApsaraDB RDS for MySQL

更新时间:Jul 02, 2025

Topik ini menjelaskan cara memecahkan masalah yang menyebabkan jumlah thread aktif berlebihan pada instance ApsaraDB RDS for MySQL.

Informasi latar belakang

Jumlah thread aktif atau koneksi aktif adalah metrik penting untuk mengukur beban pada instance RDS Anda. Pada instance RDS yang sehat, jumlah thread aktif biasanya kurang dari 10. Jika instance RDS memiliki spesifikasi tinggi dan permintaan per detik (QPS) tinggi, jumlah tersebut dapat meningkat menjadi 20 hingga 30. Namun, jika jumlahnya melebihi 100 atau 1.000, kecepatan respons instance RDS terhadap query akan menurun karena penumpukan query SQL. Dalam kasus parah, instance RDS mungkin tidak merespons dan berhenti memproses query SQL.

Lihat jumlah thread aktif

Anda dapat masuk ke Konsol ApsaraDB RDS dan menggunakan salah satu metode berikut untuk melihat jumlah thread aktif:

  • Pemantauan dan Peringatan

    Di panel navigasi sebelah kiri, klik Monitoring and Alerts. Pada tab Standard Monitoring, klik Standard View untuk melihat jumlah thread aktif.

  • DAS

    Di panel navigasi sebelah kiri, pilih Autonomy Service > Dashboard. Pada halaman yang muncul, klik tab Performance Trends untuk melihat jumlah thread aktif. Jika jumlahnya terlalu besar, beberapa sesi mungkin diblokir.

Memecahkan masalah penumpukan query SQL lambat

  • Gejala

    Jika jumlah thread aktif meningkat, Anda dapat mengeksekusi pernyataan SHOW PROCESSLIST untuk memeriksa apakah ada query SQL lambat. Jika sejumlah besar query SQL memerlukan ApsaraDB RDS untuk memindai sejumlah baris yang terlalu besar, jumlah thread aktif dapat meningkat.

    Anda juga dapat memilih Autonomy Service > Slow Query Logs untuk melihat informasi tentang query SQL lambat.

  • Solusi

    Aktifkan fitur pembatasan SQL atau hentikan sesi untuk mengurangi dampak dari query SQL lambat. Untuk informasi lebih lanjut, lihat Pembatasan SQL.

Memecahkan masalah cache tabel

  • Gejala

    Jika instance RDS Anda mengalami QPS sangat tinggi atau memproses sejumlah besar tabel, sejumlah besar query SQL beralih ke status Opening table karena ukuran cache tabel yang tidak mencukupi.

  • Solusi

    Tingkatkan nilai parameter table_open_cache dan table_open_cache_instances. Rekonfigurasi parameter table_open_cache tidak memerlukan restart instance RDS. Namun, rekonfigurasi parameter table_open_cache_instances memerlukan restart instance RDS.

Memecahkan masalah penguncian metadata

  • Gejala

    Pada fase Persiapan dan Komitmen, pernyataan DDL perlu mendapatkan kunci metadata pada tabel. Jika tabel terlibat dalam transaksi yang belum dikomit atau query SQL lambat, pernyataan DDL akan diblokir. Hal ini dapat memblokir lebih banyak query SQL, yang kemudian beralih ke status Menunggu kunci metadata tabel. Akibatnya, jumlah thread aktif meningkat.

  • Solusi

    Hentikan semua transaksi yang belum dikomit, query SQL lambat, dan pernyataan DDL yang sedang berlangsung.

Memecahkan konflik kunci baris

  • Gejala

    Jika nilai metrik Innodb_row_lock_waits dan Innodb_row_lock_time besar, konflik kunci baris mungkin terjadi.

    Di panel navigasi sebelah kiri, pilih Autonomy Service > Dashboard. Pada halaman yang muncul, klik tab Performance Trends. Kemudian, Anda dapat melihat metrik di bagian Row Lock.

  • Solusi

    Eksekusi pernyataan SHOW ENGINE INNODB STATUS; untuk memeriksa apakah banyak sesi berada dalam status Lock wait. Jika banyak sesi berada dalam status Lock wait, kemungkinan besar terjadi konflik kunci baris yang parah. Untuk mengurangi konflik ini, gunakan semua metode yang disarankan. Sebagai contoh, optimalkan pembaruan data panas, kurangi ukuran transaksi, dan minimalkan waktu yang diperlukan untuk mengomitm transaksi.