在REE和MRI 1.9+中,ruby的垃圾收集器可以调优:
- http://www.rubyenterpriseedition.com/documentation.html _garbage_collector_performance_tuning
- http://smartic.us/2010/10/27/tune-your-ruby-enterprise-edition-garbage-collection-settings-to-run-tests-faster/
- http://blog.evanweaver.com/articles/2009/04/09/ruby-gc-tuning/
但是这些文章都没有说明将这个配置放在哪里。我想,如果它在环境中,ruby会在它启动时将其捡起——然而,据我所知,没有办法检查这一点。这些设置没有显示在我能找到的任何运行时常量中。
那么,我把这个配置放在哪里,我怎样才能再次检查它是否被使用?
这些设置是环境变量,因此您只需要在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
),然后配置Passenger以将其用作ruby
可执行文件,方法是将其添加到Apache .conf文件中:
PassengerRuby /usr/local/bin/ruby-custom