Server RDS datang dengan 40 koneksi maks, seperti dalam dokumentasi berikut ini
saya menggunakan Magento 1.9, dan pada beberapa titik, saya mencapai jumlah maks kemudian situs web tidak berfungsi.
Apakah Anda memiliki cara yang disarankan untuk menyelesaikan masalah ini?
Dari pemahaman saya, jika saya memiliki 2 koneksi server web ke server RDS .. maka saya harus memiliki 2 koneksi RDS, tidak lebih.
amazon-web-services
database
rds
amazon-rds
Alaa Badran
sumber
sumber
max_connections
parameter. Untuk sebagian besar beban kerja, Anda harus dapat meningkatkannya dengan aman, karena ini merupakan nilai default konservatif yang aman ... tetapi Anda ingin menyelidiki penyebab lonjakan tersebut.Jawaban:
Variabel batas AWS RDS max_connections didasarkan pada jenis Instance, sehingga Anda dapat memutakhirkan RDS Anda atau membuat lebih banyak replika.
Jenis RDS dengan batas max_connections:
Perbarui 2017-07
Pengaturan RDS MySQL max_connections saat ini adalah default
{DBInstanceClassMemory/12582880}
, jika Anda menggunakan t2.micro dengan RAM 512MB, max_connections bisa berupa (512 * 1024 * 1024) / 12582880 ~ = 40, dan seterusnya.Setiap server Web dapat memiliki banyak koneksi ke RDS, yang tergantung pada permintaan SQL Anda dari server Web.
sumber
{DBInstanceClassMemory/12582880}
, jadi ketika Anda menggunakan t2.micro dengan RAM 512MB, max_connections bisa jadi(512*1024*1024)/12582880 = 40.69
yang bisa menjelaskan 40 koneksi maks Anda.show variables like 'max_connections';
.parameter group
dan mengubah nilaimax_connections
menjadi nilai yang Anda inginkan. Ini akan menjadi batas koneksi baru untuk instance RDS Anda.SHOW VARIABLES WHERE Variable_name='max_connections'
Anda dapat mengubah
max_connections
nilainya dengan memperbarui kebijakan parameter default atau membuat yang baru - saya sarankan menggunakan yang terakhir.max_connections
nilainyaSemoga ini membantu!
sumber
Sementara meningkatkan koneksi maks pada konfigurasi server dapat memperbaiki masalah, Anda harus mempertimbangkan memverifikasi konfigurasi dan implementasi aplikasi Anda.
Saya bukan ahli Magento, tetapi karena saya baru-baru ini memiliki masalah serupa pada proyek yang sedang saya kerjakan, saya perhatikan bahwa implementasi standar kerangka kerja yang saya gunakan membuat koneksi dengan setiap panggilan ke database.
Meskipun hal itu mungkin tidak menimbulkan masalah bagi sebagian orang, saat Anda memiliki lebih banyak pengunjung atau beberapa tugas yang intensif basis data dan dapat berjalan pada beberapa koneksi, cara terbaik untuk mencegah server crash dengan kesalahan "TERLALU BANYAK KONEKSI" adalah dengan mengimplementasikan database kolam koneksi.
Ini mencegah aplikasi membuat lebih banyak koneksi yang dapat ditangani server, dan tidak membuat aplikasi mogok untuk pengguna. Kumpulan koneksi akan membuat antrian untuk permintaan untuk mengakses database sampai koneksi tersedia sehingga dapat melanjutkan dengan memproses permintaan pengguna.
Hanya perlu diingat bahwa kumpulan koneksi harus aman dalam skenario multi-thread.
sumber
Login ke instance RDS Anda (menggunakan klien MySQL) dan jalankan kueri berikut:
sumber
Info aktual untuk postgresql t3-instance (grup parameter default.postgres10):
Mirip dengan default.postgres9 dan default.postgres11
sumber
Itu bukan 40 koneksi maks, yaitu maks 40 RDS instance. Kemungkinan besar Anda hanya menggunakan 1 instance berdasarkan deskripsi Anda.
Anda dapat memiliki ribuan koneksi ke server RDS karena setiap kali sesi dibuka dengan database, yang menciptakan koneksi baru. Anda mungkin mengalami kendala kinerja dan harus melihat ke dalam membuat contoh RDS lebih besar.
sumber