在 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 会在它启动时拾取它——但是,据我所知,没有办法检查它。这些设置不会出现在我能找到的任何运行时常量中。
那么,我应该把这个配置放在哪里,我怎样才能仔细检查它是否被使用了?
最佳答案
这些设置是 environment variables ,因此您只需要在 ruby
进程本身的父进程中设置它们。 Many people建议为此目的创建一个简单的 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
关于ruby - Ruby 内存配置在哪里,如何检查它是否已设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15642793/