io/socket/sql/client_connection - Amazon Aurora

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

io/socket/sql/client_connection

Peristiwa io/socket/sql/client_connection terjadi saat thread sedang dalam proses penanganan koneksi baru.

Versi mesin yang didukung

Informasi peristiwa tunggu ini didukung untuk versi mesin berikut:

  • Aurora MySQL versi 2 dan 3

Konteks

Peristiwa io/socket/sql/client_connection menunjukkan bahwa mysqld sibuk membuat thread untuk menangani koneksi klien baru yang masuk. Dalam skenario ini, pemrosesan layanan permintaan koneksi klien baru melambat, sementara koneksi menunggu agar thread ditetapkan. Untuk informasi selengkapnya, lihat Server MySQL (mysqld).

Kemungkinan penyebab peningkatan peristiwa tunggu

Saat peristiwa ini muncul lebih dari biasanya, yang mungkin menunjukkan adanya masalah performa, berikut adalah penyebab umumnya:

  • Terdapat peningkatan mendadak dalam koneksi pengguna baru dari aplikasi ke instans Amazon RDS Anda.

  • Instans DB Anda tidak dapat memproses koneksi baru karena jaringan, CPU, atau memori sedang dibatasi.

Tindakan

Jika io/socket/sql/client_connection mendominasi aktivitas basis data, hal tersebut tidak selalu menunjukkan adanya masalah performa. Dalam basis data yang tidak idle, peristiwa tunggu selalu berada di atas. Lakukan tindakan hanya bila performa menurun. Kami merekomendasikan berbagai tindakan, tergantung pada penyebab peristiwa tunggu Anda.

Mengidentifikasi sesi dan kueri yang bermasalah

Jika instans DB Anda mengalami kemacetan, langkah pertama adalah menemukan sesi dan kueri yang menjadi penyebabnya. Untuk postingan blog yang berguna, lihat Menganalisis Beban Kerja Amazon Aurora MySQL dengan Wawasan Performa.

Untuk mengidentifikasi sesi dan kueri yang menyebabkan kemacetan:
  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 Anda.

  4. Di Beban basis data, pilih Potong berdasarkan masa tunggu.

  5. Di bagian bawah halaman, pilih SQL Teratas.

    Kueri di bagian atas daftar adalah penyebab beban tertinggi pada basis data.

Mengikuti praktik terbaik untuk manajemen koneksi

Untuk mengelola koneksi Anda, pertimbangkan strategi berikut:

Menskalakan instans jika sumber daya sedang dibatasi

Cari contoh throttling dalam sumber daya berikut:

  • CPU

    Periksa CloudWatch metrik Amazon Anda untuk penggunaan CPU yang tinggi.

  • Jaringan

    Periksa peningkatan nilai CloudWatch metrik network receive throughput dannetwork transmit throughput. Jika instans Anda telah mencapai batas bandwidth jaringan untuk kelas instans, pertimbangkan untuk menskalakan instans RDS ke jenis kelas instans yang lebih tinggi. Untuk informasi selengkapnya, lihat Kelas instans DB Aurora.

  • Memori yang dapat dibebaskan

    Periksa penurunan CloudWatch metrikFreeableMemory. Pertimbangkan juga untuk mengaktifkan Peningkatan Pemantauan. Untuk informasi selengkapnya, lihat Memantau metrik OS dengan Pemantauan yang Disempurnakan.

Memeriksa host teratas dan pengguna teratas

Gunakan Wawasan Performa untuk memeriksa host teratas dan pengguna teratas. Untuk informasi selengkapnya, lihat Menganalisis metrik dengan dasbor Wawasan Performa.

Membuat kueri tabel performance_schema

Untuk mendapatkan jumlah koneksi total dan saat ini yang akurat, buat kueri tabel performance_schema. Dengan teknik ini, Anda mengidentifikasi pengguna sumber atau host yang bertanggung jawab untuk membuat koneksi dalam jumlah besar. Misalnya, buat kueri tabel performance_schema sebagai berikut:

SELECT * FROM performance_schema.accounts; SELECT * FROM performance_schema.users; SELECT * FROM performance_schema.hosts;

Memeriksa status thread kueri

Jika masalah performa terus berlanjut, periksa status thread kueri. Di klien mysql, keluarkan perintah berikut.

show processlist;

Mengaudit permintaan dan kueri

Untuk memeriksa sifat permintaan dan kueri dari akun pengguna, gunakan AuroraAurora MySQL Advanced Audit. Untuk mempelajari cara mengaktifkan audit, lihat Menggunakan Audit Lanjutan dengan klaster DB Amazon Aurora MySQL.

Menggabungkan koneksi basis data

Pertimbangkan untuk menggunakan Proksi Amazon RDS untuk manajemen koneksi. Dengan menggunakan Proksi RDS, Anda dapat mengizinkan aplikasi untuk menggabungkan dan berbagi koneksi basis data guna meningkatkan kemampuan penskalaannya. Proksi RDS membuat aplikasi lebih tangguh terhadap kegagalan basis data dengan secara otomatis terhubung ke sebuah instans DB siaga sekaligus menjaga koneksi aplikasi. Untuk informasi selengkapnya, lihat Menggunakan Proksi Amazon RDS untuk Aurora.