gpt4 book ai didi

ruby-on-rails - 6 个 ruby​​ 进程在 mysql 上调用 SHOW TABLES,导致 mysql 宕机

转载 作者:数据小太阳 更新时间:2023-10-29 08:13:14 26 4
gpt4 key购买 nike

我正在运行 Rails 3.1.0 应用程序,但遇到了一个奇怪的问题。在我们的登台服务器上,只有很少的事件,我们有 5 个 ruby​​ 进程不断地使用以下命令 ping mySQL:

poll([{fd=12, events=POLLIN|POLLPRI}], 1, 0) = 0 (Timeout)
write(12, "\f\0\0\0\3SHOW TABLES", 16) = 16
select(13, [12], NULL, NULL, NULL) = 1 (in [12])
read(12, "\1\0\0\1\1D\0\0\2\3def\0\vTABLE_NAMES\0\31Tabl"..., 16384) = 637
poll([{fd=12, events=POLLIN|POLLPRI}], 1, 0) = 0 (Timeout)
write(12, "\f\0\0\0\3SHOW TABLES", 16) = 16
select(13, [12], NULL, NULL, NULL)

最后一行不完整,但我们每一秒都在谈论几次(x5/6 个进程)。服务器是一头野兽,它有 32GB 的 RAM 并且已经进行了一些优化(即 mySQL 设置)但它会杀死服务器。

就像我说的,服务器的事件很少,所以它不是用户,也不是任务。

(对于考虑将其从该论坛中移除的管理员,我认为这是一个 ruby​​/rails 问题,我不确定它是否在服务器论坛中它与回答者有很好的兼容性)

如果有任何建议,我将不胜感激,我担心这可能有点超出我的理解范围。我不是 Linux/mySQL 专业人士。

谢谢

最佳答案

我会查看您的数据库的连接池。运行这个有帮助吗?

ActiveRecord::Base.clear_active_connections!

具体来说,在此环境的 config/database.yml 中,尝试设置 pool: 50 并重启 rails,然后查看这是否会影响结果。如果您的池已耗尽,下一个问题是了解数据库连接池耗尽的原因(此命令或在 resque 中运行的内容)。我认为池的默认大小是 4 或 5

关于ruby-on-rails - 6 个 ruby​​ 进程在 mysql 上调用 SHOW TABLES,导致 mysql 宕机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11318084/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com