E_WARNING: Error al enviar el paquete STMT_PREPARE. PID = *

A partir del 2019-01-30 14:52 UTC, ¡aún puede ganar la recompensa de 500 puntos porque ninguna de las respuestas ha ayudado!

Mi sitio web Laravel 5.7 ha experimentado algunos problemas que creo están relacionados entre sí (pero suceden en diferentes momentos):

PDO::prepare(): MySQL server has gone awayE_WARNING: Error while sending STMT_PREPARE packet. PID=10PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry (Mi base de datos a menudo parece intentar escribir el mismo registro dos veces en el mismo segundo. No he podido entender por qué o cómo reproducirlo; no parece estar relacionado con el comportamiento del usuario). De alguna manera, esos primeros 2 tipos de errores solo aparecen en mis registros de Rollbar pero no en los registros de texto en el servidor o en mis notificaciones de Slack, como se supone que todos los errores deben aparecer (y todos los demás lo hacen).

Durante meses, he seguido viendo mensajes de registro de miedo como estos, y no he podido reproducir completamente estos errores (y no he podido diagnosticarlos y resolverlos).

Todavía no he encontrado ningún síntoma real ni he escuchado ninguna queja de los usuarios, pero los mensajes de error parecen no triviales, por lo que realmente quiero entender y corregir las causas raíz.

He intentado cambiar mi configuración de MySQL para usarmax_allowed_packet=300M (en vez dedefect de 4M), pero todavía recibo estas excepciones con frecuencia en los días en que tengo más de un par de visitantes en mi sitio.

También configuré (cambié de 5M y 10M) lo siguiente debido aeste consejo:

innodb_buffer_pool_chunk_size=218M
innodb_buffer_pool_size = 218M

Como antecedentes adicionales:

Mi sitio tiene un trabajador de cola que ejecuta trabajos artisan queue:work --sleep=3 --tries=3 --daemon).Hay un montón de trabajos en cola que se pueden programar para suceder en el mismo momento en función del tiempo de registro de los visitantes. Pero lo máximo que veo que ha sucedido simultáneamente es 20.No hay entradas en el registro de consulta lenta de MySQL. Tengo algunos trabajos cron, pero dudo que sean problemáticos. Uno corre cada minuto pero es realmente simple. Otro se ejecuta cada 5 minutos para enviar ciertos correos electrónicos programados si alguno está pendiente. Y otro se ejecuta cada 30 minutos para ejecutar un informe. He corrido variosmysqlslap consultas (aunque soy completamente novato) y no he encontrado nada lento incluso al simular cientos de clientes concurrentes. Estoy usando Laradock (Docker).Mi servidor es DigitalOcean 1GB RAM, 1 vCPU, 25GB SSD. También probé 2 GB de RAM sin diferencia.Los resultados deSHOW VARIABLES; ySHOW GLOBAL STATUS; están aqu.

Mimy.cnf es

[mysql]

[mysqld]
sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
character-set-server=utf8
innodb_buffer_pool_chunk_size=218M
innodb_buffer_pool_size = 218M
max_allowed_packet=300M
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow_query_log.log
long_query_time = 10
log_queries_not_using_indexes = 0

¿Alguna idea sobre lo que debería explorar para diagnosticar y solucionar estos problemas? Gracias

Respuestas a la pregunta(2)

Su respuesta a la pregunta