Summary
The jemalloc library is included with the MarkLogic install and is recommended to use as it has shown a performance boost over the default Linux malloc library. It is included with the MarkLogic server install and is configured to be used by default.
There have been cases where even if configured, the library is not used. This article will give possible solutions to debug that.
Diagnostics
ErrorLog message on startup if jemalloc is not allocated:
Warning: Memory allocator is not jemalloc; check /etc/sysconfig/MarkLogic
Solutions
1) Make sure to use superuser shell or sudo and run the 'service MarkLogic restart'
2) Verify that the jemalloc library is present in the install directory (ie /opt/MarkLogic/lib/libjemalloc.so.1).
3) Has the /etc/sysconfig/MarkLogic configuration file been modified from the default? Try setting the configuration file back to the default and restarting the server.
4) Confirm that /etc/sysconfig/MarkLogic contain the following lines: # preload jemalloc if [ -e $MARKLOGIC_INSTALL_DIR/lib/libjemalloc.so.1 ]; then export LD_PRELOAD=$MARKLOGIC_INSTALL_DIR/lib/libjemalloc.so.1 fi
Details
For more information on the jemalloc library, please review the article provided by Facebook Engineering
https://www.facebook.com/notes/facebook-engineering/scalable-memory-allocation-using-jemalloc/480222803919/
|