All Products
Search
Document Center

ApsaraDB RDS:Wawasan Kinerja

Last Updated:Jul 06, 2025

Topik ini menjelaskan cara menggunakan fitur Wawasan Kinerja untuk memantau beban kerja, melakukan analisis asosiasi, dan mengoptimalkan kinerja instance ApsaraDB RDS. Fitur ini membantu Anda mengevaluasi beban kerja instance RDS secara cepat serta mengidentifikasi masalah kinerja guna memastikan stabilitas layanan.

Prasyarat

Instance RDS Anda harus menjalankan MySQL 8.0 atau MySQL 5.7 dengan versi mesin minor 20190915 atau yang lebih baru.

Catatan

Untuk memeriksa versi mesin minor dari instance RDS Anda, masuk ke Konsol Manajemen ApsaraDB RDS dan buka halaman Basic Information. Di bagian Configuration Information, periksa apakah tombol Upgrade Kernel Version tersedia. Jika tombol tersebut ada, klik untuk melihat dan memperbarui versi mesin minor instance RDS Anda. Jika tombol tidak ditampilkan, instance RDS Anda sudah menggunakan versi mesin minor terbaru. Untuk informasi lebih lanjut, lihat Perbarui versi mesin minor.

Ikhtisar

Fitur Wawasan Kinerja mencakup dua komponen utama:

  • Statistik objek

    Statistik objek mengumpulkan statistik dari indeks dan tabel berikut:

    • TABLE_STATISTICS: mencatat baris dengan data yang dibaca dan dimodifikasi.

    • INDEX_STATISTICS: mencatat baris dengan data yang dibaca dari indeks.

  • Titik kinerja

    Titik kinerja mengumpulkan detail kinerja instance RDS Anda. Data ini dapat digunakan untuk menghitung overhead Pernyataan SQL secara cepat dan akurat. Titik kinerja mengukur kinerja database dari tiga dimensi berikut:

    • CPU: mencakup total waktu eksekusi Pernyataan SQL dan waktu yang dihabiskan oleh CPU untuk mengeksekusi Pernyataan SQL.

    • Kunci: mencakup waktu yang digunakan oleh metadata locks pada server, transaction locks penyimpanan, mutual exclusion dalam mode debugging, dan readers-writer locks.

    • I/O: mencakup waktu yang dihabiskan untuk operasi seperti membaca dan menulis file data, menulis file log, membaca log biner, membaca redo logs, serta membaca redo logs secara asinkron.

Menggunakan statistik objek

  1. Pastikan nilai parameter OPT_TABLESTAT dan OPT_INDEXSTAT disetel ke ON. Contoh:

    mysql> show variables like "opt_%_stat";
      +---------------+-------+
      | Variable_name | Value |
      +---------------+-------+
      | opt_indexstat | ON    |
      | opt_tablestat | ON    |
      +---------------+-------+
  2. Kueri tabel TABLE_STATISTICS atau INDEX_STATISTICS di database information_schema untuk mendapatkan statistik tabel atau indeks. Contoh:

    mysql> select * from TABLE_STATISTICS limit 10;
      +--------------+--------------+-----------+--------------+------------------------+---------------+--------------+--------------+
      | TABLE_SCHEMA | TABLE_NAME   | ROWS_READ | ROWS_CHANGED | ROWS_CHANGED_X_INDEXES | ROWS_INSERTED | ROWS_DELETED | ROWS_UPDATED |
      +--------------+--------------+-----------+--------------+------------------------+---------------+--------------+--------------+
      | mysql        | db           |         2 |            0 |                      0 |             0 |            0 |            0 |
      | mysql        | engine_cost  |         2 |            0 |                      0 |             0 |            0 |            0 |
      | mysql        | proxies_priv |         1 |            0 |                      0 |             0 |            0 |            0 |
      | mysql        | server_cost  |         6 |            0 |                      0 |             0 |            0 |            0 |
      | mysql        | tables_priv  |         2 |            0 |                      0 |             0 |            0 |            0 |
      | mysql        | user         |         7 |            0 |                      0 |             0 |            0 |            0 |
      | test         | sbtest1      |      1686 |          142 |                    184 |           112 |           12 |           18 |
      | test         | sbtest10     |      1806 |          125 |                    150 |           105 |            5 |           15 |
      | test         | sbtest100    |      1623 |          141 |                    182 |           110 |           10 |           21 |
      | test         | sbtest11     |      1254 |          136 |                    172 |           110 |           10 |           16 |
      +--------------+--------------+-----------+--------------+------------------------+---------------+--------------+--------------+
    
      mysql> select * from INDEX_STATISTICS limit 10;
      +--------------+--------------+------------+-----------+
      | TABLE_SCHEMA | TABLE_NAME   | INDEX_NAME | ROWS_READ |
      +--------------+--------------+------------+-----------+
      | mysql        | db           | PRIMARY    |         2 |
      | mysql        | engine_cost  | PRIMARY    |         2 |
      | mysql        | proxies_priv | PRIMARY    |         1 |
      | mysql        | server_cost  | PRIMARY    |         6 |
      | mysql        | tables_priv  | PRIMARY    |         2 |
      | mysql        | user         | PRIMARY    |         7 |
      | test         | sbtest1      | PRIMARY    |      2500 |
      | test         | sbtest10     | PRIMARY    |      3007 |
      | test         | sbtest100    | PRIMARY    |      2642 |
      | test         | sbtest11     | PRIMARY    |      2091 |
      +--------------+--------------+------------+-----------+

    Tabel berikut menjelaskan parameter dalam contoh sebelumnya.

    Parameter

    Deskripsi

    TABLE_SCHEMA

    Nama database.

    TABLE_NAME

    Nama tabel.

    ROWS_READ

    Jumlah baris yang dibaca dari tabel.

    ROWS_CHANGED

    Jumlah baris yang dimodifikasi dalam tabel.

    ROWS_CHANGED_X_INDEXES

    Jumlah baris yang dimodifikasi menggunakan indeks dalam tabel.

    ROWS_INSERTED

    Jumlah baris yang dimasukkan ke dalam tabel.

    ROWS_DELETED

    Jumlah baris yang dihapus dari tabel.

    ROWS_UPDATED

    Jumlah baris yang diperbarui dalam tabel.

    INDEX_NAME

    Nama indeks.

Menggunakan titik kinerja

  1. Lihat pengaturan variabel global instance RDS Anda.Konfirmasi parameter terkait Performance point. Contoh normal sebagai berikut:

    mysql> show variables like "%performance_point%";
      +---------------------------------------+-------+
      | Variable_name                         | Value |
      +---------------------------------------+-------+
      | performance_point_dbug_enabled        | OFF   |
      | performance_point_enabled             | ON    |
      | performance_point_iostat_interval     | 2     |
      | performance_point_iostat_volume_size  | 10000 |
      | performance_point_lock_rwlock_enabled | ON    |
      +---------------------------------------+-------+
    Catatan

    Jika variabel ini tidak ditemukan, periksa apakah instance RDS Anda memenuhi persyaratan versi yang dijelaskan dalam bagian Prasyarat.

  2. Kueri tabel events_statements_summary_by_digest_supplement di database performance_schema untuk mendapatkan 10 Pernyataan SQL teratas berdasarkan berbagai dimensi. Contoh:

    mysql> select * from events_statements_summary_by_digest_supplement limit 10;
      +--------------------+----------------------------------+-------------------------------------------+--------------+
      | SCHEMA_NAME        | DIGEST                           | DIGEST_TEXT                               | ELAPSED_TIME | ......
      +--------------------+----------------------------------+-------------------------------------------+--------------+
      | NULL               | 6b787dd1f9c6f6c5033120760a1a82de | SELECT @@`version_comment` LIMIT ?        |          932 |
      | NULL               | 2fb4341654df6995113d998c52e5abc9 | SHOW SCHEMAS                              |         2363 |
      | NULL               | 8a93e76a7846384621567fb4daa1bf95 | SHOW VARIABLES LIKE ?                     |        17933 |
      | NULL               | dd148234ac7a20cb5aee7720fb44b7ea | SELECT SCHEMA ( )                         |         1006 |
      | information_schema | 2fb4341654df6995113d998c52e5abc9 | SHOW SCHEMAS                              |         2156 |
      | information_schema | 74af182f3a2bd265678d3dadb53e08da | SHOW TABLES                               |         3161 |
      | information_schema | d3a66515192fcb100aaef6f8b6e45603 | SELECT * FROM `TABLE_STATISTICS` LIMIT ?  |         2081 |
      | information_schema | b3726b7c4c4db4b309de2dbc45ff52af | SELECT * FROM `INDEX_STATISTICS` LIMIT ?  |         2384 |
      | information_schema | dd148234ac7a20cb5aee7720fb44b7ea | SELECT SCHEMA ( )                         |          129 |
      | test               | 2fb4341654df6995113d998c52e5abc9 | SHOW SCHEMAS                              |          342 |
      +--------------------+----------------------------------+-------------------------------------------+--------------+

    Tabel berikut menjelaskan parameter dalam contoh sebelumnya.

    Parameter

    Deskripsi

    SCHEMA_NAME

    Nama database.

    DIGEST

    String hash 64-byte yang dihasilkan dari parameter DIGEST_TEXT.

    DIGEST_TEXT

    Ringkasan dari Pernyataan SQL.

    ELAPSED_TIME

    Total waktu yang dihabiskan untuk mengeksekusi Pernyataan SQL. Satuan: mikrodetik.

    CPU_TIME

    Waktu yang dihabiskan oleh CPU untuk mengeksekusi Pernyataan SQL. Satuan: mikrodetik.

    SERVER_LOCK_TIME

    Waktu yang ditempati oleh metadata locks pada server selama eksekusi Pernyataan SQL. Satuan: mikrodetik.

    TRANSACTION_LOCK_TIME

    Waktu yang ditempati oleh storage transaction locks selama eksekusi Pernyataan SQL. Satuan: mikrodetik.

    MUTEX_SPINS

    Jumlah mutex spins yang dipicu selama eksekusi Pernyataan SQL.

    MUTEX_WAITS

    Jumlah spin waits yang dipicu oleh mutexes selama eksekusi Pernyataan SQL.

    RWLOCK_SPIN_WAITS

    Jumlah spin waits yang dipicu oleh readers-write locks selama eksekusi Pernyataan SQL.

    RWLOCK_SPIN_ROUNDS

    Jumlah putaran di mana thread latar belakang berputar dalam siklus spin-wait yang dipicu oleh readers-write locks selama eksekusi Pernyataan SQL.

    RWLOCK_OS_WAITS

    Jumlah tunggu sistem operasi yang dipicu oleh readers-write locks selama eksekusi Pernyataan SQL.

    DATA_READS

    Jumlah kali sistem membaca data dari file data selama eksekusi Pernyataan SQL.

    DATA_READ_TIME

    Waktu yang dihabiskan untuk membaca data dari file data selama eksekusi Pernyataan SQL. Satuan: mikrodetik.

    DATA_WRITES

    Jumlah kali sistem menulis data ke file data selama eksekusi Pernyataan SQL.

    DATA_WRITE_TIME

    Waktu yang dihabiskan untuk menulis data ke file data selama eksekusi Pernyataan SQL. Satuan: mikrodetik.

    REDO_WRITES

    Jumlah kali sistem menulis data ke file log selama eksekusi Pernyataan SQL.

    REDO_WRITE_TIME

    Waktu yang dihabiskan untuk menulis data ke file log selama eksekusi Pernyataan SQL. Satuan: mikrodetik.

    LOGICAL_READS

    Jumlah kali sistem membaca halaman logis selama eksekusi Pernyataan SQL.

    PHYSICAL_READS

    Jumlah kali sistem membaca halaman fisik selama eksekusi Pernyataan SQL.

    PHYSICAL_ASYNC_READS

    Jumlah kali sistem membaca halaman fisik asinkron selama eksekusi Pernyataan SQL.

  3. Kueri tabel IO_STATISTICS di database information_schema untuk mendapatkan informasi tentang operasi baca dan tulis data terbaru. Contoh:

    mysql> select * from IO_STATISTICS limit 10;
      +---------------------+-----------+----------------+
      | TIME                | DATA_READ | DATA_READ_TIME | ......
      +---------------------+-----------+----------------+
      | 2019-08-08 09:56:53 |        73 |            983 |
      | 2019-08-08 09:56:57 |         0 |              0 |
      | 2019-08-08 09:59:17 |         0 |              0 |
      | 2019-08-08 10:00:55 |      4072 |          40628 |
      | 2019-08-08 10:00:59 |         0 |              0 |
      | 2019-08-08 10:01:09 |       562 |           5800 |
      | 2019-08-08 10:01:11 |       606 |           6910 |
      | 2019-08-08 10:01:13 |       609 |           6875 |
      | 2019-08-08 10:01:15 |       625 |           7077 |
      | 2019-08-08 10:01:17 |       616 |           5800 |
      +---------------------+-----------+----------------+

    Tabel berikut menjelaskan parameter dalam contoh sebelumnya.

    Parameter

    Deskripsi

    TIME

    Tanggal.

    DATA_READ

    Jumlah kali sistem membaca data.

    DATA_READ_TIME

    Total waktu yang dihabiskan untuk membaca data. Satuan: mikrodetik.

    DATA_READ_MAX_TIME

    Waktu maksimum yang dihabiskan untuk membaca data. Satuan: mikrodetik.

    DATA_READ_BYTES

    Total jumlah data yang dibaca. Satuan: byte.

    DATA_WRITE

    Jumlah kali sistem menulis data.

    DATA_WRITE_TIME

    Total waktu yang dihabiskan untuk menulis data. Satuan: mikrodetik.

    DATA_WRITE_MAX_TIME

    Waktu maksimum yang dihabiskan untuk menulis data. Satuan: mikrodetik.

    DATA_WRITE_BYTES

    Total jumlah data yang ditulis. Satuan: byte.