我不明白为什么我的 Rails 应用程序(托管在 Heroku (cedar) 上)不断分配越来越多的内存。如果我不知道更好,我会说这是 Ruby/Rails 中的内存泄漏,但由于我对 Ruby/Rails 完全陌生,我觉得我错过了一些非常明显的东西。
我正在使用由 生成的 Rails 默认值rails new
,以及完全最新的 gem:
source 'https://rubygems.org'
gem 'rails', '3.2.8'
group :development do
gem 'sqlite3'
end
group :assets do
gem "sass-rails", "~> 3.2.5"
gem "coffee-rails", "~> 3.2.2"
gem "uglifier", "~> 1.3.0"
end
gem "jquery-rails", "~> 2.1.2"
group :production do
gem 'newrelic_rpm'
gem "pg", "~> 0.14.1"
end
我正在使用默认的 newrelic 配置。我有零个模型和一个控制器nothing_controller.rb
,它是使用生成的rails generate controller nothing
:
class NothingController < ApplicationController
def index
end
end
我删除public/index.html
并添加了一个空的views/nothing/index.html.erb
. 我对生成的应用程序所做的唯一另一件事是添加一个路由routes.rb
:
Nothing::Application.routes.draw do
root :to => "nothing#index"
end
我承诺,将其推送到 Heroku,然后编写了一个快速脚本,每 10 秒加载一次我的 Heroku 页面。这是我的新遗物报告:
这里的所有都是它的。内存就这样不断增加,直到超过 Heroku 的 512MB 限制。这个应用程序中的代码与我在我遵循的教程中看到的代码几乎相同。我不明白我做错了什么。
任何指导将不胜感激。
编辑(9/12):如果相关,我使用的是 ruby 1.9。
我用来访问服务器的代码(C#):
using (var wc = new WebClient())
for (;; Thread.Sleep(10000))
wc.DownloadString("http://vast-earth-9859.herokuapp.com/");
编辑(9/13):尝试禁用 New Relic 并查看它是否仍然是 R14s。