2013-03-26 93 views
5

在REE和MRI 1.9+,Ruby的垃圾收集器可以调整:Ruby内存配置在哪里,以及如何检查它是否被设置?

但是,这些文章说,在那里把这个配置。我想如果它是在环境中,ruby会在启动时将它提取出来 - 但是,根据我的说法,无法检查这个问题。这些设置不会显示在我能找到的任何运行时常量中。

那么,我在哪里放置这个配置,我该如何仔细检查它是否被使用?

回答

1

这些设置是environment variables,所以您只需要将它们设置在ruby进程本身的父进程中。 Manypeople推荐用于此目的创建一个简单的shell脚本,或许称之为/usr/local/bin/ruby-custom

#!/bin/bash 
export RUBY_HEAP_MIN_SLOTS=20000 
export RUBY_HEAP_SLOTS_INCREMENT=20000 
...etc... 
exec "/path/to/ruby" "[email protected]" 

前几行设置任何你想要的自定义变量,最后一行调用ruby本身,传递给它的任何参数这个剧本最初给出。

接下来,您将需要以纪念这个脚本为可执行(chmod a+x /usr/local/bin/ruby-custom),然后配置乘客用它作为ruby可执行文件,加入这个到Apache .conf文件:

PassengerRuby /usr/local/bin/ruby-custom 
+0

感谢 - 但什么关于第二个问题 - 我如何在运行时仔细检查配置是否有效? (这真的是我的主要问题) – 2013-03-26 17:06:07

+0

在Ruby 1.9+中,您可以使用['GC.stat'](http://ruby-doc.org/core-1.9.3/GC.html#method- c-stat)来检查其中一些设置。还要注意REE是[报废](http://blog.phusion.nl/2012/02/21/ruby-enterprise-edition-1-8-7-2012-02-released-end-of - 生命-迫在眉睫/) – 2013-03-26 17:11:12

相关问题