エラー2006:MySQLサーバーが廃止されました
CentOSサーバーでuWSGIとnginxを使用してPython Pyramidアプリを実行しています。SQLAlchemyをORMとして、MySQLdbをAPIとして、MySQLをデータベースとして使用しています。サイトはまだ稼働していないため、トラフィックは私と会社の他の従業員だけです。データベースにデータを追加するためにデータを購入したため、最大(かつ最も頻繁に照会される)テーブルは最大150,000行です。 昨日、ウェブサイトの4つの新しいタブを連続して開いたところ、502のBad Gatewayエラーがいくつか返されました。uWSGIログを調べたところ、次のことがわかりました。 sqlalchemy.exc.OperationalError: (OperationalError) (2006, 'MySQL server has gone away') 'SELECT ge... 重要な注意: このエラーは、MySQLのwait_timeoutが原因ではありません。そこに行って、それをやった。 この問題は、同時リクエストが同時に処理されたために発生したのではないかと思いました。私は自分を貧乏人の負荷テスターにしました: for i in {1..10}; do (curl -o /dev/null http://domain.com &); done; 案の定、これらの10件のリクエスト内で、少なくとも1件は2006エラーをスローし、多くの場合はそれ以上になります。時々エラーはさらに奇妙なものになるでしょう、例えば: sqlalchemy.exc.NoSuchColumnError: "Could not locate column in row for column 'table.id'" 列が最も確実に存在し、他のすべての同一のリクエストで正常に機能したとき。または、これ: sqlalchemy.exc.ResourceClosedError: This result object does not return rows. It has …