我已经安装了一个Ubuntu Server VM来托管我的应用程序。
应用程序在我启动后完美运行。一段时间不活动(大约5分钟没有请求),当我向它发送请求时,应用程序停止响应。 服务器记录:
Started GET "/" for 190.104.243.172 at 2016-05-11 13:22:46 +0000
仅此而已。它应该记录:
Started GET "/" for 190.104.243.172 at 2016-05-11 13:22:46 +0000
Processing by DashboardController#root as HTML
Completed 401 Unauthorized in 0ms (ActiveRecord: 0.0ms)
Started GET "/users/sign_in" for 190.104.243.172 at 2016-05-11 13:24:16 +0000
...
它似乎没有在收到请求后处理请求。
这是我的puma.rb配置文件
threads_count = Integer(ENV['MAX_THREADS'] || 16)
threads threads_count, threads_count
workers 1
preload_app!
rackup DefaultRackup
port ENV['PORT'] || 3000
environment ENV['RACK_ENV'] || 'development'
on_worker_boot do
ActiveSupport.on_load(:active_record) do
ActiveRecord::Base.establish_connection
end
end
before_fork do
ActiveRecord::Base.connection_pool.disconnect!
end
例如,如果我将工人数量更改为2,则5分钟后的第一个请求将起作用。如果我再等5分钟,它会冻结。所以绝对必须是工人悬挂或没有正确装载的东西。
这是我ps -aux | grep puma
user 57674 1.2 11.0 1003076 189780 ? Ssl 16:14 0:12 puma 3.4.0 (tcp://0.0.0.0:3000) [be-better-hotels]
user 57771 0.4 14.4 1497004 247484 ? Sl 16:15 0:04 puma: cluster worker 0: 57674 [be-better-hotels]
编辑:在向挂起的服务器发出请求30分钟后,客户端收到500内部服务器错误,服务器显示此错误消息:
PG::UnableToSend (SSL SYSCALL error: EOF detected):
非常大的堆栈跟踪。
答案 0 :(得分:-1)
我使用纯RAM实例在DO水滴上遇到了同样的问题..我所做的一切 - 添加了交换。