Ruby内存配置在哪里,如何检查是否已设置?

5
在REE和MRI 1.9+中,Ruby的垃圾收集器可以进行调整:

但是这些文章都没有说明在哪里放置此配置。我认为如果将其放在环境中,当ruby启动时就可以使用--然而,据我所知,没有办法检查这一点。我找不到任何运行时常量中显示的设置。

那么,我应该将此配置放在哪里,如何确认它正在被使用?

1个回答

1
这些设置是环境变量,因此您只需要在ruby进程的父进程中设置它们。许多 建议为此创建一个简单的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" "$@"

前几行设置您想要的任何自定义变量,最后一行调用ruby本身,并将其传递给此脚本最初给出的任何参数。

接下来,您需要将此脚本标记为可执行文件(chmod a+x /usr/local/bin/ruby-custom),然后通过将其添加到Apache .conf文件中,配置Passenger使用它作为ruby可执行文件:

PassengerRuby /usr/local/bin/ruby-custom

谢谢,但第二个问题怎么办——我如何在运行时进行双重检查以确保配置已经生效?(这实际上是我的主要问题) - John Bachir
在 Ruby 1.9+ 中,您可以使用 GC.stat 检查其中一些设置。还请注意,REE 已经 终止生命周期 - Stuart M

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接