我的 rails 应用占用了太多内存:
Process running mem=701M(136.9%)
Error R14 (Memory quota exceeded)
在我解决问题之前,如何增加 heroku 上的内存大小?
添加更多的 web dynos 是否有助于分割内存?
谢谢
最佳答案
我的一位客户遇到了同样的问题。有时挖掘内存泄漏可能是一项艰巨的任务,尤其是当泄漏源可能在第三方代码中时。
我所做的是每隔几个小时重新启动几个测功机。我选择了非高流量时间来重新启动。
创建一个 cron:
namespace :utils do desc "Restart app by process and time table" task :restart => :environment do time_hash = { 1 => %w[web.1 web.2 web.3], 3 => %w[web.4 web.5 web.6], 5 => %w[web.7 web.8 web.9], 7 => %w[web.10 web.11 web.12], 16 => %w[web.13 web.14 web.1], 18 => %w[web.2 web.3 web.4], 20 => %w[web.5 web.6 web.7], 22 => %w[web.8 web.9 web.10], 0 => %w[web.11 web.12 web.13 web.14], } processes = time_hash[Time.now.hour] processes.each {|process| restart_process(process)} if processes end def restart_process(name) puts "restarting process #{name}:" heroku = Heroku::Client.new(ENV['APP_USERNAME'], ENV['APP_PASSWORD']) heroku.ps_restart(ENV['APP_NAME'], :ps => name) end end
使用每小时调度程序(heroku 插件)来运行这个 cron。
关于ruby-on-rails - 如何增加heroku的内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8984748/