【问题标题】:How to add jemalloc to existing rails server using rvm?如何使用 rvm 将 jemalloc 添加到现有的 Rails 服务器?
【发布时间】:2019-09-09 08:39:08
【问题描述】:

如何在 Rails 服务器上的工作 ruby​​ 中添加 jemalloc?我们使用 rvm 安装了 ruby​​。

Rails version:5.2 Ruby version:2.5.1

我试过了

ruby -r rbconfig -e "puts RbConfig::CONFIG['LIBS']"

我得到了谁的输出

-lpthread -lgmp -ldl -lcrypt -lm

我看到一篇文章 Lower Memory Usage of your Rails App with Jemalloc 但它使用的是 rbenv

【问题讨论】:

    标签: ruby-on-rails ruby rvm jemalloc


    【解决方案1】:

    我设法使用以下步骤添加了 jemalloc:

    安装 Jemalloc 库:

    sudo apt install libjemalloc-dev
    

    使用编译参数重新安装当前安装的 ruby​​ 版本以包含 Jemalloc 支持:

    rvm reinstall 2.5.1 -C -with-jemalloc
    

    然后检查是否正确添加了 Jemalloc 支持:

    ruby -r rbconfig -e "puts RbConfig::CONFIG['LIBS']"
    

    它应该输出如下内容:

    -lpthread -ljemalloc -lgmp -ldl -lcrypt -lm
    

    【讨论】:

    • “rvm reinstall”命令中需要两个破折号 --with-jemalloc。还要注意 - 许多评论平台会自动用 mdash 替换两个破折号 - 这让我困惑了一个小时,因为它看起来很相似 :) ALSO - 测试的命令已经改变,你需要使用 MAINLIBS 而不是 LIBS
    【解决方案2】:

    @ste20654 答案更新

    对我来说这个命令

    ruby -r rbconfig -e "puts RbConfig::CONFIG['LIBS']"
    

    返回

    -lm
    

    这是怎么回事

    ruby -r rbconfig -e "puts RbConfig::CONFIG['MAINLIBS']"
    

    ruby -r rbconfig -e "puts RbConfig::CONFIG['SOLIBS']"
    

    返回(如果 ruby​​ 使用 jemalloc 正确编译)

    -lz -lpthread -lrt -lrt -ljemalloc -lgmp -ldl -lcrypt -lm
    

    【讨论】:

    • 在 2021 年使用 ruby​​ 2.7 有效,流行的答案没有显示 ljemalloc 但这个选项显示
    猜你喜欢
    • 1970-01-01
    • 2012-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-21
    • 2016-04-25
    • 1970-01-01
    • 2018-11-06
    相关资源
    最近更新 更多