2013-03-26 12 views
5

W REE i MRI 1.9+, garbage collector Ruby można dostroić:Gdzie znajduje się konfiguracja pamięci w Ruby i jak można sprawdzić, czy jest ustawiona?

Ale żaden z tych artykułów powiedzieć, gdzie umieścić tę konfigurację. Wyobrażam sobie, że jeśli jest w środowisku, ruby ​​podniesie go, gdy się zacznie - jednak nie ma sposobu, aby to sprawdzić, o ile wiem. Ustawienia nie pojawiają się w żadnym stałym strumieniu czasu, który mogę znaleźć.

Gdzie zatem umieścić tę konfigurację i jak dokładnie sprawdzić, czy jest używana?

Odpowiedz

1

Ustawienia te to environment variables, więc wystarczy ustawić je w procesie nadrzędnym samego procesu ruby. Manypeople zalecamy utworzenie prostego skrypt do tego celu, może nazywając go /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]" 

Pierwszych kilka linii ustawić w zależności od tego zwyczaju zmienne chcesz, a ostatnia linia wywołuje ruby się, przepuszczając ją cokolwiek argumenty ten scenariusz był początkowo podane.

Będziesz następny trzeba zaznaczyć ten skrypt jako wykonywalny (chmod a+x /usr/local/bin/ruby-custom), a następnie skonfigurować Pasażera go używać jako ruby wykonywalnego, dodając to do pliku Apache .conf:

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

dzięki - ale co o drugim pytaniu - w jaki sposób mogę dwukrotnie sprawdzić w czasie wykonywania, czy konfiguracja zadziałała? (co jest naprawdę moim głównym pytaniem) –

+0

W Ruby 1.9+ możesz użyć ['GC.stat'] (http://ruby-doc.org/core-1.9.3/GC.html#method- c-stat), aby sprawdzić niektóre z tych ustawień. Należy również pamiętać, że REE to [koniec życia] (http://blog.phusion.nl/2012/02/21/ruby-enterprise-edition-1-8-7-2012-02-releasedend-of -life-rychły /) –

Powiązane problemy