背景
Sentieon建议使用jemalloc来改善Sentieon应用程序中的内存管理和整体性能,尤其是Sentieon bwa-mem。有时在安装运行过程中会出现报错:
ERROR: ld.so: object '/usr/lib64/libjemalloc.so.2' from LD_PRELOAD cannot be preloaded: ignored. Failed to contact the license server at 10.10.10.1:8990
Jemalloc 是一个内存分配器,针对多线程方案中的高内存分配性能和更少的内存碎片进行了优化。可通过以下办法,修复这个ERROR。有关 jemalloc的更多信息,请参考 https://github.com/jemalloc/jemalloc
安装步骤
Sentieon建议安装一个预构建包,用户可能需要root 访问权限才能完成安装。
RHEL/CentOS 8.x
yum install epel-release
yum install jemalloc
默认情况下,安装在
/usr/lib64/libjemalloc.so.2
RHEL/CentOS 7.x
yum install epel-release
yum install jemalloc
默认情况下,安装在
/usr/lib64/libjemalloc.so.1
Ubuntu 20.04
apt update
apt install libjemalloc2
默认情况下,安装在
/usr/lib/x86_64-linux-gnu/libjemalloc.so.2
Ubuntu 18.04
apt update
apt install libjemalloc1
默认情况下,安装在
/usr/lib/x86_64-linux-gnu/libjemalloc.so.1
没有预构建软件包的其他系统,请参考jemalloc GitHub页面,https://github.com/jemalloc/jemalloc以获取有关如何构建和安装 jemalloc 的更多信息。
在Sentieon流程中加载jemalloc
可以使用环境变量在运行时加载jemalloc库到Sentieon中。
例如,在CentOS 8.x 系统上,在运行Sentieon 工具之前,您可以使用以下代码设置环境变量:
export LD_PRELOAD=/usr/lib64/libjemalloc.so.2