Rails 测试网站不定时无法访问

zhangcaiyan · 2018年01月12日 · 最后由 wangping 回复于 2019年03月22日 · 1593 次阅读

问题:网站每隔几天就无法访问了,查看日志发现如下信息,好像跟超时有关,重启后可以继续使用,但是过几天依然会卡住,无法请求。我查看了阿里云的 rds,没看出什么问题。如下图中的日志是我后台定时任务的请求,没一分钟请求一次,一旦卡住后,只能收到这个请求,我刷新网页的请求是收不到的。刚才又发现了一个问题,我的 puma 线程设置的是 5 个,但是发现只剩下两个了,如下图:

曾试过的解决方案:

1: 刚开始怀疑数据库连接池全部被占用了,设置了 database.yml 中的 pool,还是不行。

自己先顶一下吧

刚才又发现了一个问题,我这边调用接口没有设置 timeout,会连接比较长的时间才会释放,有没有可能是很多这种长时间的连接导致的

你先把 Session 改为 Cookie 模式,避免用户首次请求就要卡数据库那里,然后再看看会不会卡住

huacnlee 回复

我这边没有改过 session 的存储模式,本来就是 cookie 模式,现在我的日志里经常提示如下

(2.1ms) SET NAMES utf8, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483

你之前有遇过这种情况吗

zhangcaiyan 回复

哦 我看错了,那个不是 Rails Session 的查询

顶。没有遇到过这个情况。。

你这个问题解决了吗

需要 登录 后方可回复, 如果你还没有账号请 注册新账号