Peristiwa tunggu Aurora MySQL - Amazon Aurora

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

Peristiwa tunggu Aurora MySQL

Berikut ini adalah beberapa peristiwa tunggu umum di Aurora MySQL.

catatan

Untuk informasi tentang menyesuaikan performa Aurora MySQL menggunakan peristiwa tunggu, lihat Menyesuaikan Aurora MySQL dengan peristiwa tunggu.

Untuk informasi tentang konvensi penamaan yang digunakan dalam peristiwa tunggu MySQL, lihat Performance Schema instrument naming conventions dalam dokumentasi MySQL.

cpu

Jumlah koneksi aktif yang siap dijalankan secara konsisten lebih tinggi daripada jumlah vCPU. Untuk informasi selengkapnya, lihat cpu.

io/aurora_redo_log_flush

Sesi mempersistensi data ke penyimpanan Aurora. Biasanya, peristiwa tunggu ini ditujukan untuk operasi I/O tulis di Aurora MySQL. Untuk informasi selengkapnya, lihat io/aurora_redo_log_flush.

io/aurora_respond_to_client

Pemrosesan kueri telah selesai dan hasilnya ditampilkan ke klien aplikasi untuk versi MySQL Aurora berikut: 2.10.2 dan versi 2.10 yang lebih tinggi, versi 2.09.3 dan versi 2.09 yang lebih tinggi, serta versi 2.07.7 dan versi 2.07 yang lebih tinggi. Bandingkan bandwidth jaringan kelas instans DB dengan ukuran set hasil yang ditampilkan. Selain itu, periksa waktu respons sisi klien. Jika klien tidak responsif dan tidak dapat memproses paket TCP, penghapusan paket dan transmisi ulang TCP dapat terjadi. Situasi ini berdampak negatif pada bandwidth jaringan. Dalam versi yang lebih rendah dari 2.10.2, 2.09.3, dan 2.07.7, peristiwa tunggu secara keliru menyertakan waktu idle. Untuk mempelajari cara menyesuaikan basis data Anda saat peristiwa waktu tunggu ini sering muncul, lihat io/aurora_respond_to_client.

io/file/csv/data

Thread menulis ke tabel dalam format nilai yang dipisahkan koma (CSV). Periksa penggunaan tabel CSV Anda. Penyebab umum peristiwa ini adalah mengatur log_output pada tabel.

io/file/sql/binlog

Thread sedang menunggu file log biner (binlog) yang sedang ditulis ke disk.

io/redo_log_flush

Sesi mempersistensi data ke penyimpanan Aurora. Biasanya, peristiwa tunggu ini ditujukan untuk operasi I/O tulis di Aurora MySQL. Untuk informasi selengkapnya, lihat io/redo_log_flush.

io/socket/sql/client_connection

Program mysqld sibuk membuat thread untuk menangani koneksi klien baru yang masuk. Untuk informasi selengkapnya, lihat io/socket/sql/client_connection.

io/table/sql/handler

Mesin sedang menunggu akses ke tabel. Peristiwa ini terjadi terlepas dari apakah data di-cache di pool buffer atau diakses pada disk. Untuk informasi selengkapnya, lihat io/table/sql/handler.

lock/table/sql/handler

Peristiwa tunggu ini adalah handler peristiwa tunggu kunci tabel. Untuk informasi selengkapnya tentang peristiwa atom dan molekul di Skema Performa, lihat Performance Schema atom and molecule events dalam dokumentasi MySQL.

synch/cond/innodb/row_lock_wait

Pernyataan bahasa manipulasi data (DML) mengakses baris basis data yang sama pada saat yang bersamaan. Untuk informasi selengkapnya, lihat synch/cond/innodb/row_lock_wait.

synch/cond/innodb/row_lock_wait_cond

Beberapa pernyataan DML mengakses baris basis data yang sama secara bersamaan. Untuk informasi selengkapnya, lihat synch/cond/innodb/row_lock_wait_cond.

synch/cond/sql/MDL_context::COND_wait_status

Thread sedang menunggu kunci metadata tabel. Mesin menggunakan jenis kunci ini untuk mengelola akses konkuren ke skema basis data dan untuk memastikan konsistensi data. Untuk informasi selengkapnya, lihat Optimizing locking operations dalam dokumentasi MySQL. Untuk mempelajari cara menyesuaikan basis data Anda saat peristiwa ini sering muncul, lihat synch/cond/sql/MDL_context::COND_wait_status.

synch/cond/sql/MYSQL_BIN_LOG::COND_done

Anda telah mengaktifkan logging biner. Mungkin ada throughput commit yang tinggi, transaksi dalam jumlah besar yang di-commit, atau replika yang membaca binlog. Pertimbangkan untuk menggunakan pernyataan multibaris atau menggabungkan pernyataan ke dalam satu transaksi. Di Aurora, gunakan basis data global alih-alih replikasi log biner, atau gunakan parameter aurora_binlog_*.

synch/mutex/innodb/aurora_lock_thread_slot_futex

Beberapa pernyataan DML mengakses baris basis data yang sama secara bersamaan. Untuk informasi selengkapnya, lihat synch/mutex/innodb/aurora_lock_thread_slot_futex.

synch/mutex/innodb/buf_pool_mutex

Pool buffer tidak cukup besar untuk menampung set data kerja. Atau, beban kerja mengakses halaman dari tabel tertentu, yang mengakibatkan pertentangan di pool buffer. Untuk informasi selengkapnya, lihat synch/mutex/innodb/buf_pool_mutex.

synch/mutex/innodb/fil_system_mutex

Proses sedang menunggu akses ke cache memori ruang tabel. Untuk informasi selengkapnya, lihat synch/mutex/innodb/fil_system_mutex.

synch/mutex/innodb/trx_sys_mutex

Operasi memeriksa, memperbarui, menghapus, atau menambahkan ID transaksi di InnoDB secara konsisten atau terkontrol. Operasi ini memerlukan panggilan mutex trx_sys, yang dilacak oleh instrumentasi Skema Performa. Operasi mencakup manajemen sistem transaksi ketika basis data dimulai atau dinonaktifkan, rollback, pembersihan undo, akses baca baris, dan beban pool buffer. Beban basis data yang tinggi dengan sejumlah besar transaksi mengakibatkan seringnya kemunculan peristiwa tunggu ini. Untuk informasi selengkapnya, lihat synch/mutex/innodb/trx_sys_mutex.

synch/mutex/mysys/KEY_CACHE::cache_lock

Mutex keycache->cache_lock mengontrol akses ke cache kunci untuk tabel MyISAM. Meskipun Aurora MySQL tidak mengizinkan penggunaan tabel MyISAM untuk menyimpan data persisten, tabel tersebut digunakan untuk menyimpan tabel sementara internal. Pertimbangkan untuk memeriksa penghitung status created_tmp_disk_tables atau created_tmp_tables karena dalam situasi tertentu, tabel sementara ditulis ke disk ketika tidak lagi muat dalam memori.

synch/mutex/sql/FILE_AS_TABLE::LOCK_offsets

Mesin memperoleh mutex ini saat membuka atau membuat file metadata tabel. Ketika peristiwa tunggu ini terjadi dengan frekuensi yang berlebihan, jumlah tabel yang dibuat atau dibuka telah melonjak.

synch/mutex/sql/FILE_AS_TABLE::LOCK_shim_lists

Mesin memperoleh mutex ini saat melakukan operasi seperti reset_size, detach_contents, atau add_contents pada struktur internal yang melacak tabel yang dibuka. Mutex menyinkronkan akses ke konten daftar. Ketika peristiwa tunggu ini terjadi dengan frekuensi tinggi, ini menunjukkan perubahan mendadak dalam kumpulan tabel yang sebelumnya diakses. Mesin perlu mengakses tabel baru atau melepaskan konteks yang terkait dengan tabel yang diakses sebelumnya.

synch/mutex/sql/LOCK_open

Jumlah tabel yang dibuka sesi Anda melebihi ukuran cache definisi tabel atau cache pembukaan tabel. Tingkatkan ukuran cache ini. Untuk informasi selengkapnya, lihat Cara MySQL membuka dan menutup tabel.

synch/mutex/sql/LOCK_table_cache

Jumlah tabel yang dibuka sesi Anda melebihi ukuran cache definisi tabel atau cache pembukaan tabel. Tingkatkan ukuran cache ini. Untuk informasi selengkapnya, lihat Cara MySQL membuka dan menutup tabel.

synch/mutex/sql/LOG

Dalam peristiwa tunggu ini, terdapat thread yang menunggu kunci log. Misalnya, thread mungkin akan menunggu kunci untuk menulis ke file log kueri lambat.

synch/mutex/sql/MYSQL_BIN_LOG::LOCK_commit

Dalam peristiwa tunggu ini, ada thread yang menunggu untuk mendapatkan kunci dengan tujuan melakukan commit ke log biner. Pertentangan log biner dapat terjadi pada basis data dengan tingkat perubahan yang sangat tinggi. Tergantung pada versi MySQL, terdapat beberapa kunci yang digunakan untuk melindungi konsistensi dan durabilitas log biner. Di RDS for MySQL, log biner digunakan untuk replikasi dan proses pencadangan otomatis. Di Aurora MySQL, log biner tidak diperlukan untuk replikasi atau pencadangan native. Opsi ini dinonaktifkan secara default, tetapi dapat diaktifkan dan digunakan untuk replikasi eksternal atau penangkapan data perubahan. Untuk informasi selengkapnya, lihat The binary log dalam dokumentasi MySQL.

sync/mutex/sql/MYSQL_BIN_LOG::LOCK_dump_thread_metrics_collection

Jika logging biner diaktifkan, mesin memperoleh mutex ini saat mencetak metrik thread dump aktif ke log kesalahan mesin dan ke peta operasi internal.

sync/mutex/sql/MYSQL_BIN_LOG::LOCK_inactive_binlogs_map

Jika logging biner diaktifkan, mesin memperoleh mutex ini ketika menambahkan, menghapus dari, atau mencari melalui daftar file binlog di belakang yang terbaru.

sync/mutex/sql/MYSQL_BIN_LOG::LOCK_io_cache

Jika logging biner diaktifkan, mesin memperoleh mutex ini selama operasi cache Aurora IO binlog: mengalokasikan, mengubah ukuran, membebaskan, menulis, membaca, membersihkan, dan mengakses info cache. Jika peristiwa ini sering terjadi, mesin mengakses cache tempat peristiwa binlog disimpan. Untuk mengurangi waktu tunggu, kurangi commit. Cobalah mengelompokkan beberapa pernyataan ke dalam satu transaksi.

synch/mutex/sql/MYSQL_BIN_LOG::LOCK_log

Anda telah mengaktifkan logging biner. Mungkin ada throughput commit yang tinggi, banyak transaksi yang dilakukan, atau replika yang membaca binlog. Pertimbangkan untuk menggunakan pernyataan multibaris atau menggabungkan pernyataan ke dalam satu transaksi. Di Aurora, gunakan basis data global alih-alih replikasi log biner atau gunakan parameter aurora_binlog_*.

synch/mutex/sql/SERVER_THREAD::LOCK_sync

Mutex SERVER_THREAD::LOCK_sync diperoleh selama penjadwalan, pemrosesan, atau peluncuran thread untuk penulisan file. Terjadinya peristiwa tunggu yang berlebihan ini menunjukkan peningkatan aktivitas penulisan dalam basis data.

synch/mutex/sql/TABLESPACES:lock

Mesin memperoleh mutex TABLESPACES:lock selama operasi ruang tabel berikut: membuat, menghapus, memotong, dan memperpanjang. Terjadinya peristiwa tunggu yang berlebihan ini menunjukkan frekuensi operasi ruang tabel yang tinggi. Contohnya adalah memuat sejumlah besar data ke dalam basis data.

synch/rwlock/innodb/dict

Dalam peristiwa tunggu ini, ada thread yang menunggu rwlock yang dipertahankan di kamus data InnoDB.

synch/rwlock/innodb/dict_operation_lock

Dalam peristiwa tunggu ini, ada thread yang menahan kunci di operasi kamus data InnoDB.

synch/rwlock/innodb/dict sys RW lock

Sejumlah besar pernyataan bahasa kontrol data (DCL) konkuren dalam kode bahasa definisi data (DDL) dipicu pada saat yang bersamaan. Kurangi dependensi aplikasi pada DDL selama aktivitas aplikasi reguler.

synch/rwlock/innodb/index_tree_rw_lock

Sejumlah besar pernyataan bahasa manipulasi data (DML) yang serupa mengakses objek basis data yang sama secara bersamaan. Coba gunakan pernyataan multibaris. Selain itu, sebarkan beban kerja ke objek basis data yang berbeda-beda. Misalnya, dengan menerapkan partisi.

synch/sxlock/innodb/dict_operation_lock

Sejumlah besar pernyataan bahasa kontrol data (DCL) konkuren dalam kode bahasa definisi data (DDL) dipicu pada saat yang bersamaan. Kurangi dependensi aplikasi pada DDL selama aktivitas aplikasi reguler.

synch/sxlock/innodb/dict_sys_lock

Sejumlah besar pernyataan bahasa kontrol data (DCL) konkuren dalam kode bahasa definisi data (DDL) dipicu pada saat yang bersamaan. Kurangi dependensi aplikasi pada DDL selama aktivitas aplikasi reguler.

synch/sxlock/innodb/hash_table_locks

Sesi tidak dapat menemukan halaman dalam pool buffer. Mesin perlu membaca file atau memodifikasi daftar least-recently used (LRU) untuk pool buffer. Pertimbangkan untuk meningkatkan ukuran cache buffer dan meningkatkan jalur akses untuk kueri yang relevan.

synch/sxlock/innodb/index_tree_rw_lock

Banyak pernyataan bahasa manipulasi data (DML) yang serupa mengakses objek basis data yang sama secara bersamaan. Coba gunakan pernyataan multibaris. Selain itu, sebarkan beban kerja ke objek basis data yang berbeda-beda. Misalnya, dengan menerapkan partisi.

Untuk informasi selengkapnya tentang pemecahan masalah peristiwa tunggu sinkronisasi, lihat Mengapa instans DB MySQL saya menampilkan sejumlah besar sesi aktif yang menunggu peristiwa tunggu SYNCH di Wawasan Performa?.