我们有一个在 NGINX 和 uwsgi 下运行的 Django 网站(Django 1.4)。该网站使用 MYSQL 5.6.39,它在单独的 AWS RDS 实例上运行。它运行良好大约一周,但突然我们收到可怕的 MYSQL 2006 错误 - MYSQL 服务器已消失。我们还注意到,在发生这种情况时,写入 IOPS 似乎突然大幅增加。
经过网上搜索,提出以下建议:
- 将 max_allowed_packet 增加到 128M 左右
- 将 wait_timeout 和 interactive_timeout 增加到 86400
- 在我们的 webapp 服务器上的 uwsgi 配置文件中使用 lazy=1
我们正在尝试这些,但这个问题很难调试,因为我们必须等待一周的运行才能复制它。所以:
- 我们是否应该设置其他参数来解决这个问题?
- 我们可以在 Django 应用中做些什么来解决这个问题?例如,我们是否应该在每个视图开始时关闭数据库连接?
- 如果我们切换到像 Postgres 这样的其他数据库,整个问题就会消失吗?