我有一个带有Rails API的Web应用程序,该应用程序在具有MySQL数据库的Puma服务器中运行。 我正在运行一个批处理过程,该过程将很多日志写入日志文件。在一段时间后的特定时间内,Puma服务器将关闭。在日志中,一切想法看起来都很好,直到显然没有任何原因为止。但是我没有看到任何错误。两者都不在puma.err中。不知道它是与服务器有关还是与数据库有关(与池有关?)。我瞎了。我不知道该去哪里调试问题。
更新:我认为我已经缩小了问题的范围。我已经意识到,当尝试加载相同的元素时,Puma服务器总是会关闭。我试图在开发中进行测试,并且可以在其中进行测试。所以,我想我知道是什么在杀死它。我不确定,但强烈怀疑我要在批处理过程中加载的元素会在MySQL数据库的单个事务中运行很多查询。我认为该事务不能以某种方式处理所有查询,并且由于某种原因Puma服务器关闭。我不知道这是否有意义,但这是我的主要怀疑。我已阅读有关事务大小和日志文件How do I determine maximum transaction size in MySQL?
的内容我的新问题是:如果确实发生这种情况,我可以在任何日志文件(Puma或Mysql)中看到与此相关的错误吗?
更新2 :我附上了环境信息:
开发:MacOS,处理器:2,4GHz,内存:8GB
生产:Ubuntu14,处理器:2.5 GHz,内存:3.7 GB(AWS实例) 关于Puma的配置,我不是很熟练,但是在开发和配置环境中,我只用两行的配置文件启动服务器:
stdout_redirect 'path_to_log_file.log', 'path_to_error_file.log', true
bind 'unix:///tmp/puma.sock'
启动时,我既看不到任何工作程序配置,因此我假设我只有一个工作程序,默认线程数为0到16。