2014-10-24 18 views
8

Stiamo riscontrando un problema intermittente con le connessioni al nostro server MySQL. L'errore che stiamo ricevendo è il seguente.Intermittently non riesce a connettersi a mysql su AWS RDS (Errore 2003)

(2003, 'Can\'t connect to MySQL server on \'<connection>\' ((2013, "Lost connection to MySQL server during query (error(104, \'Connection reset by peer\'))"))') Callstack: File "/usr/lib64/python2.7/site-packages/pymysql/connections.py", line 818, in _connect 2003, "Can't connect to MySQL server on %r (%s)" % (self.host, e)) File "/usr/lib64/python2.7/site-packages/pymysql/connections.py", line 626, in __init__ self._connect()

qualche informazione in più:

  • Abbiamo un volo di server EC2 che sono costantemente l'esecuzione di query ad un RDS backend.
  • Noi di media circa 500 connessioni al secondo alla RDS
  • Abbiamo circa 0-4 singhiozzo per RDS al giorno
  • il singhiozzo non corrispondono con la nostra finestra di manutenzione
  • Quando abbiamo raggiunto un incidente di percorso si può colpiscono un bel paio di connessioni ~ 50
  • Quando un incidente di percorso che accade e questo disturba le connessioni su tutti i server e le porte

l'errore stesso sembra essere generato dalla connessione TCP viene chiusa sul EC2. Il nostro TCP keep-alive time è impostato su 7200 secondi e questo è il momento in cui viene sparato l'errore.

La mia domanda è cosa si può fare per rintracciare perché questi singhiozzi accadono? È bello che non succedano spesso, ma non è l'ideale che avvengano.

Qualsiasi consiglio sarebbe apprezzato grazie!

Aggiornamento 10/29:

Ho corso un servizio di controllo per vedere se ho lunghi processi in esecuzione sul server SQL e sembra che questi errori non sono sempre così lontano. Un nuovo processo non viene mai creato per questa connessione! Ho ancora ricevuto il singhiozzo, solo nessun segno di connessioni.

risposta

1

Quindi, dopo uno scambio avanti e indietro con il supporto di Amazon, ecco la soluzione attuale a cui siamo giunti.

Amazon ha aumentato il backlog di ascolto del socket regolando il valore somaxconn nell'istanza RDS.

Il valore era al di default di 128 ed è stato urtato fino al 1024.

Una volta che il valore è stato rettificato abbiamo ricevuto non è più l'errore di connessione Lost.

+0

ciao @ Zach, sto avendo un problema simile. Questo valore è configurabile tramite la console di gestione o devo contattare l'assistenza? – Pacharrin

+0

Purtroppo per ora è necessario contattare direttamente il supporto. Mi è stato comunicato che essere in grado di modificarlo è nel loro arretrato, ma non c'è una data concreta su quando la funzionalità verrà rilasciata. – Zach

Problemi correlati