monitoring ruby app memory usage with passenger-recycler (was: Cannot require library for passenger in ruby)
Karli Sjöberg
karli at inparadise.se
Thu Feb 22 06:51:06 UTC 2018
On Tue, 2018-02-20 at 21:31 +0000, Marcin Cieslak wrote:
> On Mon, 19 Feb 2018, Karli Sjöberg wrote:
>
> > > What is the tool you are trying to deploy? foreman_maintain?
>
> Sorry, I was too quick. This foreman_main is used to download/update
> foreman
> from RedHat Satellite servers, which is not what you want.
Well, I want the "foreman_maintain" package, which includes "passenger-
recycler", so I guess I do want it :)
>
> However, the passenger-recycler script is a standalone script which
> could possibly used with this little fix:
Ooh, awesome! Yeah, should´ve figured since it´s only at 0.1.3 :)
>
> https://github.com/theforeman/foreman_maintain/pull/143
>
> To apply this, please add files/patch-bin_passenger-recycler in the
> port I've sent before:
>
> --- bin/passenger-recycler.orig 2018-02-20 21:09:18 UTC
> +++ bin/passenger-recycler
> @@ -41,10 +41,10 @@ def process_status?(pid)
> end
>
> require 'phusion_passenger'
> +PhusionPassenger.locate_directories
> require 'phusion_passenger/platform_info'
> require 'phusion_passenger/platform_info/ruby'
> require 'phusion_passenger/admin_tools/memory_stats'
> -PhusionPassenger.locate_directories
> stats = PhusionPassenger::AdminTools::MemoryStats.new
> unless stats.platform_provides_private_dirty_rss_information?
> puts 'Please run as root or platform unsupported'
Yes, this works, thanks!
>
>
> But the real problem is that Passenger does think it supports
> getting process private dirty RSS memory information only on Linux:
>
> https://github.com/phusion/passenger/blob/219ad24159ae4033a342e6ad753
> cfee05d98bae0/src/ruby_supportlib/phusion_passenger/admin_tools/memor
> y_stats.rb#L121
>
> In file
> src/ruby_supportlib/phusion_passenger/admin_tools/memory_stats.rb:
>
> 120 def platform_provides_private_dirty_rss_information?
> 121 return os_name_simple == "linux"
> 122 end
>
> This support probably would need to be written. So, unfortunately,
> passenger-recycler
> as written will exit with:
>
> Please run as root or platform unsupported
Yes, I have now gotten to this stage at least, thank you very much! I
don´t mind having a look at it, it might be simplest thing to write, or
it´s hell, but I´ll have a look!
Thank you for pointing me in the right direction!
/K
>
> But passenger-recycler does something very simple - if the amount of
> "private resident RSS
> memory" is higher than specified amount in the configuration file, it
> kills the process.
>
> You might get a much better monitoring on FreeBSD by monitoring the
> output of
>
> procstat -v <processid>
>
> which will give you details about the memory usage of the process and
> see how it is growing
> over time. Maybe you can pinpoint the shared library that causes
> this, if you are lucky.
>
> Marcin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 455 bytes
Desc: This is a digitally signed message part
URL: <http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20180222/b0fcb13b/attachment.sig>
More information about the freebsd-ports
mailing list