Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
io/socket/sql/client_koneksi
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 SQL Versi saya 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:
-
Ada peningkatan mendadak dalam koneksi pengguna baru dari aplikasi ke RDS instans Amazon Anda.
-
Instans DB Anda tidak dapat memproses koneksi baru karena jaringanCPU,, 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 posting blog yang bermanfaat, lihat Menganalisis SQL Beban Kerja Saya Amazon Aurora dengan Performance Insights
Untuk mengidentifikasi sesi dan kueri yang menyebabkan kemacetan:
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 Anda.
-
Di Beban basis data, pilih Potong berdasarkan masa tunggu.
-
Di bagian bawah halaman, pilih Top SQL.
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 whitepaper Amazon Aurora SQL My Database
Administrator's Handbook. -
Gunakan simpul pembaca untuk mendistribusikan kembali lalu lintas hanya-baca.
Untuk informasi selengkapnya, silakan lihat 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 CPU penggunaan tinggi.
-
Jaringan
Periksa peningkatan nilai CloudWatch metrik
network receive throughput
dannetwork transmit throughput
. Jika instans Anda telah mencapai batas bandwidth jaringan untuk kelas instans Anda, pertimbangkan untuk meningkatkan RDS instance Anda 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 Audit SQL Lanjutan AuroraAurora Saya. Untuk mempelajari cara mengaktifkan audit, lihat Menggunakan Audit Lanjutan dengan klaster Amazon Aurora My DB SQL.
Menggabungkan koneksi basis data
Pertimbangkan untuk menggunakan Amazon RDS Proxy untuk manajemen koneksi. Dengan menggunakan RDS Proxy, Anda dapat mengizinkan aplikasi Anda untuk mengumpulkan dan berbagi koneksi database untuk meningkatkan kemampuan mereka dalam skala. RDS Proxy membuat aplikasi lebih tahan terhadap kegagalan database dengan secara otomatis menghubungkan ke instans DB siaga sambil mempertahankan koneksi aplikasi. Untuk informasi selengkapnya, lihat RDSProxy Amazon untuk Aurora.