Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
io/aurora_respond_to_client
Peristiwa io/aurora_respond_to_client
terjadi ketika thread menunggu untuk mengembalikan set hasil ke klien.
Versi mesin yang didukung
Informasi peristiwa tunggu ini didukung untuk versi mesin berikut:
-
Aurora Versi saya 2 SQL
Konteks
Peristiwa io/aurora_respond_to_client
menunjukkan bahwa thread menunggu untuk mengembalikan set hasil ke klien.
Pemrosesan kueri selesai, dan hasilnya dikembalikan ke klien aplikasi. Namun, karena bandwidth jaringan pada klaster DB tidak cukup, thread menunggu untuk mengembalikan set hasil.
Kemungkinan penyebab peningkatan peristiwa tunggu
Saat peristiwa io/aurora_respond_to_client
muncul lebih dari biasanya, yang mungkin menunjukkan adanya masalah performa, berikut adalah penyebab umumnya:
- Kelas instans DB tidak cukup untuk beban kerja
-
Kelas instans DB yang digunakan oleh klaster DB tidak memiliki bandwidth jaringan yang diperlukan untuk memproses beban kerja secara efisien.
- Set hasil besar
-
Terjadi peningkatan ukuran set hasil yang dikembalikan karena kueri mengembalikan jumlah baris yang lebih tinggi. Set hasil yang lebih besar menghabiskan lebih banyak bandwidth jaringan.
- Peningkatan beban pada klien
-
Mungkin ada CPU tekanan, tekanan memori, atau saturasi jaringan pada klien. Peningkatan beban pada klien menunda penerimaan data dari cluster Aurora SQL My DB.
- Peningkatan latensi jaringan
-
Mungkin ada peningkatan latensi jaringan antara cluster Aurora SQL My DB dan klien. Latensi jaringan yang lebih tinggi akan menambah waktu yang diperlukan klien untuk menerima data.
Tindakan
Kami merekomendasikan berbagai tindakan, tergantung pada penyebab peristiwa tunggu Anda.
Topik
Mengidentifikasi sesi dan kueri penyebab peristiwa
Anda dapat menggunakan Wawasan Performa untuk menampilkan kueri yang diblokir oleh peristiwa tunggu io/aurora_respond_to_client
. Biasanya, basis data dengan beban sedang hingga signifikan memiliki peristiwa tunggu. Peristiwa tunggu ini mungkin dapat diterima jika basis data berperforma optimal. Jika tidak, periksa di mana basis data tersebut menghabiskan waktu terbanyak. Lihat peristiwa tunggu yang berkontribusi ke beban tertinggi, lalu cari tahu apakah Anda dapat mengoptimalkan basis data dan aplikasi untuk mengurangi peristiwa tersebut.
Untuk menemukan SQL kueri yang bertanggung jawab atas beban tinggi
Masuk ke AWS Management Console dan buka RDS konsol Amazon di https://console.aws.amazon.com/rds/
. -
Di panel navigasi, pilih Wawasan Performa.
-
Pilih instans DB. Dasbor Wawasan Performa ditampilkan untuk instans DB tersebut.
-
Dalam bagan Beban basis data, pilih Potong berdasarkan masa tunggu.
-
Di bagian bawah halaman, pilih Top SQL.
Bagan mencantumkan SQL kueri yang bertanggung jawab atas pemuatan. Kueri di bagian atas daftar memiliki tanggung jawab terbesar. Untuk mengatasi kemacetan, fokus pada pernyataan tersebut.
Untuk ikhtisar berguna tentang pemecahan masalah menggunakan Performance Insights, lihat posting Blog Database Menganalisis AWS Beban Kerja SQL Saya Amazon Aurora
Menskalakan kelas instans DB
Periksa peningkatan nilai CloudWatch metrik Amazon yang terkait dengan throughput jaringan, seperti NetworkReceiveThroughput
dan. NetworkTransmitThroughput
Jika bandwidth jaringan kelas instans DB tercapai, Anda dapat menskalakan kelas instans DB yang digunakan oleh klaster DB dengan memodifikasi klaster DB tersebut. Kelas instans DB dengan bandwidth jaringan yang lebih besar mengembalikan data ke klien secara lebih efisien.
Untuk informasi tentang memantau CloudWatch metrik Amazon, lihatMelihat metrik di konsol Amazon RDS. Untuk informasi tentang kelas instans DB, lihat Kelas instans Amazon Aurora DB. Untuk informasi tentang mengubah klaster DB, lihat Memodifikasi klaster DB Amazon Aurora.
Memeriksa beban kerja untuk hasil yang tidak terduga
Periksa beban kerja pada klaster DB dan pastikan beban kerja tidak memberikan hasil yang tidak terduga. Misalnya, mungkin terdapat kueri yang mengembalikan jumlah baris lebih tinggi dari yang diperkirakan. Dalam hal ini, Anda dapat menggunakan metrik penghitung Wawasan Performa seperti Innodb_rows_read
. Untuk informasi selengkapnya, lihat Metrik penghitung Wawasan Performa.
Mendistribusikan beban kerja dengan instans pembaca
Anda dapat mendistribusikan beban kerja hanya-baca dengan Aurora Replicas. Anda dapat menskalakan secara horizontal dengan menambahkan lebih banyak Aurora Replicas. Dengan demikian, Anda dapat memperoleh peningkatan batas throttling untuk bandwidth jaringan. Untuk informasi selengkapnya, lihat Klaster DB Amazon Aurora.
Gunakan RESULT pengubah SQL BUFFER _ _
Anda dapat menambahkan pengubah SQL_BUFFER_RESULT
ke pernyataan SELECT
untuk memaksakan hasilnya ke tabel sementara sebelum dikembalikan ke klien. Pengubah ini dapat membantu mengatasi masalah performa saat kunci InnoDB tidak dibebaskan karena kueri berada dalam status tunggu io/aurora_respond_to_client
. Untuk informasi selengkapnya, lihat SELECTPernyataan