2014-11-18 2 views
1

Я установил старое приложение Django на новом экземпляре GCE в воскресенье и указал его на новый экземпляр CloudSQL с импортированными данные там. В течение последних нескольких лет этот код и данные успешно выполнялись на различных специализированных установках хостинга, на EC2 и EC2 + RDS.Intermittent 2013, «Потерянное подключение к серверу MySQL при чтении исходного пакета связи», системная ошибка: 0 »до CloudSQL

С воскресенья у меня были периодические сообщения о 2013 году, «Потерянное подключение к серверу MySQL при чтении исходного пакета связи», системная ошибка: 0 »из приложения. В частности, сегодня это произошло в двух очередях 3, разделенных примерно на 7 часов.

Я впал в панику в более ранних простоях и перезапустил приложение и экземпляр CloudSQL, который сделал трюк. Однако последние сегодня исправили себя через несколько минут.

Я никогда не сталкивался с этой ошибкой перед работой с MySQL, и любой поиск в этой ошибке дает результаты, связанные с людьми, которые имеют общие проблемы доступа к БД.

На стороне GCE единственная разница, о которой я могу думать в предыдущих настройках, заключается в том, что она использует образ Debian от Debian вместо Ubuntu 12.04. На стороне MySQL я понятия не имею, поскольку я успешно выполняю это как на MySQL 5.x, так и на MariaDB.

Есть ли способ понять, почему это происходит и фиксирует его?

Спасибо.

+0

Я имеющего то же самое, но с PHP-приложениями, все работало без проблем до трех часов назад, у меня такая же первоначальная ошибка пакета связи. –

ответ

0

Кажется, что существует проблема с брандмауэром, предотвращая входящие подключения, просто измените местоположение с сервера на другое зеркало, и все должно быть хорошо. Это сработало для меня

1

Вы пытались изменить настройки сохранения соединений TCP? GCE имеет правила брандмауэра, капли неактивные соединения TCP через 10 минут:

https://cloud.google.com/compute/docs/troubleshooting#communicatewithinternet

Вы можете проверить текущее значение 'tcp_keepalive_time':

cat /proc/sys/net/ipv4/tcp_keepalive_time 

и изменить его на 60 секунд:

vi /etc/sysctl.conf 
# Add this line 
net.ipv4.tcp_keepalive_time = 60 
# Reload Sysctl interface 
sudo /sbin/sysctl --load=/etc/sysctl.conf 

Возможно, вам придется перезапустить сервер Django, чтобы выбрать новые настройки сохранения.

Примечание: Если эта проблема была ограничена вчера (18/11/2014) и облачной среде экземпляры SQL находятся в ЕС, то, возможно, были затронуты этим:

https://groups.google.com/forum/#!topic/google-cloud-sql-announce/k5raPT48hc0

+0

Я попробую изменения TCP, они могут объяснить проблему с ночным подключением. Вчерашняя проблема дня произошла точно в указанное время. Спасибо, что сообщили мне об этом. –

+0

Я сделал эти изменения вчера, но ошибка 2013 года снова произошла в 22:11 этим вечером. Был ли у CloudSQL другой перерыв или есть какая-либо другая известная нестабильность? Я проведу еще несколько дней. –

+0

Можете ли вы также проверить, установлена ​​ли политика активации для экземпляра «всегда», а тарифный план - «пакет»? https://cloud.google.com/sql/price # price-example – saket