Rails 内存占满

最近搭建一个rss feed管理的rails应用,在使用一段时间后内存差不多就占满,就是pumasidekiq这两个进程占用。一种比较灵活的方式,使用像puma_worker_killer这样的监控程序,监控rails进程达到一定内存占用后将其重启,但这样使用体验不好。

由于ruby使用glibcmalloc进行内存分配,这是一个比较老旧的内存分配器,性能比较低分配时会产生大量碎片,所以切换jemalloc做为Ruby应用的内存分配器

# ruby -v

ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]

#apt-get install libjemalloc-dev

#apt-get install libcurl4 libcurl4-openssl-dev

# rvm reinstall 2.6.3 -C –with-jemalloc