2013-03-26 23 views
5

Trong REE, và MRI 1.9+, thu gom rác ruby ​​có thể được điều chỉnh:Cấu hình bộ nhớ Ruby đi đâu và làm cách nào để kiểm tra xem nó có được đặt không?

Nhưng không ai trong số những bài viết này nói nơi để đặt cấu hình này. Tôi tưởng tượng rằng nếu nó ở trong môi trường, ruby ​​sẽ nhặt nó lên khi nó bắt đầu - tuy nhiên, không có cách nào để kiểm tra điều này theo như tôi có thể nói. Các thiết lập không hiển thị trong bất kỳ hằng số thời gian chạy nào mà tôi có thể tìm thấy.

Vì vậy, tôi đặt cấu hình này ở đâu và làm cách nào để kiểm tra kỹ xem cấu hình đó có đang được sử dụng không?

Trả lời

1

Các cài đặt này là environment variables, vì vậy bạn chỉ cần đặt chúng trong quy trình gốc của quy trình ruby. Manypeople khuyên bạn nên tạo một kịch bản shell đơn giản cho mục đích này, có lẽ gọi nó /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]" 

Một vài dòng đầu tiên thiết lập bất cứ tùy biến mà bạn muốn, và dòng cuối cùng gọi ruby chính nó, đi qua nó bất cứ lý lẽ kịch bản này là ban đầu được đưa ra.

Bạn sẽ tiếp theo cần phải đánh dấu kịch bản này là thực thi (chmod a+x /usr/local/bin/ruby-custom) và sau đó cấu hình hành khách sử dụng nó như là ruby thực thi, bằng cách thêm này để Apache conf tập tin của bạn:

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

cảm ơn - nhưng những gì về câu hỏi thứ hai - làm cách nào tôi có thể kiểm tra kỹ lưỡng thời gian chạy mà cấu hình đã hoạt động? (đó thực sự là câu hỏi chính của tôi) –

+0

Trong Ruby 1.9+, bạn có thể sử dụng ['GC.stat'] (http://ruby-doc.org/core-1.9.3/GC.html#method- c-stat) để kiểm tra một số cài đặt này. Cũng lưu ý rằng REE là [cuối đời] (http://blog.phusion.nl/2012/02/21/ruby-enterprise-edition-1-8-7-2012-02-released-end-of -life-sắp xảy ra /) –

Các vấn đề liên quan