2013-03-26 105 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

相關問題