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.
Topik
- Mengidentifikasi sesi dan kueri yang bermasalah
- Mengikuti praktik terbaik untuk manajemen koneksi
- Menskalakan instans jika sumber daya sedang dibatasi
- Memeriksa host teratas dan pengguna teratas
- Membuat kueri tabel performance_schema
- Memeriksa status thread kueri
- Mengaudit permintaan dan kueri
- Menggabungkan koneksi basis data
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:
Masuk ke AWS Management Console, lalu buka konsol Amazon RDS di https://console.aws.amazon.com/rds/
. -
Di panel navigasi, pilih Wawasan Performa.
-
Pilih instans DB Anda.
-
Di Beban basis data, pilih Potong berdasarkan masa tunggu.
-
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:
-
Gunakan penggabungan koneksi.
Anda dapat secara bertahap meningkatkan jumlah koneksi sesuai yang diperlukan. Untuk informasi selengkapnya, lihat laporan resmi Buku Panduan Administrator Basis Data Amazon Aurora MySQL
. -
Gunakan simpul pembaca untuk mendistribusikan kembali lalu lintas hanya-baca.
Lihat informasi yang lebih lengkap di Replika Aurora dan Koneksi titik akhir Amazon Aurora.
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 Amazon Aurora DB. -
Memori yang dapat dibebaskan
Periksa penurunan CloudWatch metrik
FreeableMemory
. Pertimbangkan juga untuk mengaktifkan Peningkatan Pemantauan. Untuk informasi selengkapnya, lihat Memantau metrik OS dengan Pemantauan yang Ditingkatkan.
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.