Sambungan ke MySQL dapat terganggu oleh beberapa cara, tetapi saya akan merekomendasikan untuk meninjau kembali jawaban Mario Carrion karena ini adalah jawaban yang sangat bijaksana.
Tampaknya koneksi terganggu karena dibagikan dengan proses lain, menyebabkan kesalahan protokol komunikasi...
...ini dapat dengan mudah terjadi jika kumpulan koneksi terikat proses, yang saya yakini, dalam ActiveRecord, yang berarti bahwa koneksi yang sama dapat "diperiksa" beberapa kali secara bersamaan dalam proses yang berbeda.
Solusinya adalah koneksi database harus dibuat hanya SETELAH fork
pernyataan di server aplikasi.
Saya tidak yakin server mana yang Anda gunakan, tetapi jika Anda menggunakan warmup
fitur - jangan.
Jika Anda menjalankan panggilan basis data sebelum permintaan jaringan pertama - jangan.
Salah satu dari tindakan ini berpotensi menginisialisasi kumpulan koneksi sebelum fork
ing terjadi, menyebabkan kumpulan koneksi MySQL dibagikan di antara proses sementara sistem penguncian tidak.
Saya tidak mengatakan ini adalah satu-satunya alasan yang mungkin untuk masalah ini, seperti yang dinyatakan oleh @sloth-jr, ada opsi lain... tetapi sebagian besar sepertinya kurang sesuai dengan deskripsi Anda.
Catatan sampingan:
Setiap proses dapat menampung sejumlah koneksi. Dalam kasus Anda, Anda mungkin memiliki hingga 500X36 koneksi . (lihat edit)
Secara umum, jumlah koneksi di kumpulan sering kali sama dengan jumlah utas di setiap proses (tidak boleh kurang dari jumlah utas, atau pertengkaran akan memperlambat Anda). Terkadang ada baiknya menambahkan beberapa lagi tergantung pada aplikasi Anda.
EDIT:
Saya minta maaf karena mengabaikan fakta bahwa hitungan proses merujuk ke data MySQL dan bukan data aplikasi.
Hitungan proses yang Anda tunjukkan adalah data server MySQL, yang sepertinya menggunakan skema IO thread per koneksi . Data "Proses" sebenarnya menghitung koneksi aktif dan bukan proses atau utas yang sebenarnya (walaupun harus diterjemahkan ke jumlah utas juga).
Ini berarti bahwa dari kemungkinan 500 koneksi per proses aplikasi (yaitu, jika Anda menggunakan 8 proses untuk aplikasi Anda, itu akan menjadi 8X500=4,000 koneksi yang diizinkan) aplikasi Anda hanya membuka 36 koneksi sejauh ini.