io/aurora_respond_to_client - Amazon Aurora

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 MySQL versi 2

Dalam versi sebelum 2.07.7, 2.09.3, dan 2.10.2, peristiwa tunggu ini secara keliru menyertakan waktu idle.

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 terdapat tekanan CPU, tekanan memori, atau saturasi jaringan pada klien. Peningkatan beban pada klien menunda penerimaan data dari klaster DB Aurora MySQL.

Peningkatan latensi jaringan

Mungkin terdapat peningkatan latensi jaringan antara klaster DB Aurora MySQL 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.

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 kueri SQL yang bertanggung jawab atas beban tinggi:
  1. Masuk ke AWS Management Console, lalu buka konsol Amazon RDS di https://console.aws.amazon.com/rds/.

  2. Di panel navigasi, pilih Wawasan Performa.

  3. Pilih instans DB. Dasbor Wawasan Performa ditampilkan untuk instans DB tersebut.

  4. Dalam bagan Beban basis data, pilih Potong berdasarkan masa tunggu.

  5. Di bagian bawah halaman, pilih SQL Teratas.

    Bagan ini mencantumkan kueri SQL yang bertanggung jawab atas beban. Kueri di bagian atas daftar memiliki tanggung jawab terbesar. Untuk mengatasi kemacetan, fokus pada pernyataan tersebut.

Untuk ikhtisar pemecahan masalah yang berguna menggunakan Wawasan Performa, lihat postingan Blog Basis Data AWS, Menganalisis Beban Kerja Amazon Aurora MySQL dengan Wawasan Performa.

Menskalakan kelas instans DB

Periksa peningkatan nilai metrik Amazon CloudWatch 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 pemantauan metrik Amazon CloudWatch, lihat Melihat metrik di konsol Amazon RDS. Untuk informasi tentang kelas instans DB, lihat Kelas instans DB Aurora. 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.

Menggunakan pengubah SQL_BUFFER_RESULT

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 Pernyataan SELECT dalam dokumentasi MySQL.