Jemalloc является высокопроизводительным менеджером распределения оперативной памяти, который для платформы Linux реализован в виде самостоятельной библиотеки.
Jemalloc является оптимизированным вариантом реализации функций malloc, который призван решать проблемы с фрагментацией при выделения памяти в несколько потоков возникающие на многопроцессорных системах и оптимальной утилизации ресурсов CPU. Jemalloc первоначально был изобретён Джейсоном Эвансом (Jason Evans) для FreeBSD 7.0, а потом был включён в состав NetBSD и в браузер Firefox 3.
Применение jemalloc даёт возможность повысить производительность всей системы, уменьшив фрагментацию и как результат понизить потребление оперативной памяти (RAM). К примеру, переход Firefox на jemalloc привел к снижению потребления оперативной памяти примерно на 22%.
Jemalloc можно использовать в MySQL сервере указав в конфиг файле /etc/mysql/my.cnf (Debian) или /etc/my.cnf (CentOS) путь к библиотеке в параметре malloc-lib:
# vi /etc/mysql/my.cnf [mysqld_safe] malloc-lib = /usr/lib/i386-linux-gnu/libjemalloc.so.1
Однако мы можем использовать Jemalloc для всех приложений в системе, для чего после установки самой библиотеки, коммандой "apt-get install libjemalloc1
" (Debian) или "yum install jemalloc
" (CentOS), достаточно создать файл по адресу "vi /etc/ld.so.preload
" (файл эффективен как для Debian, так и для CentOS, подробнее "man ld.so
") в котором указать путь к библиотеке "/usr/lib/i386-linux-gnu/libjemalloc.so.1" (Debian) или "/usr/lib64/libjemalloc.so.1" (CentOS), после чего перезапустить систему. Для определения правильного местарасположения библиотеки jemalloc испольуйте "locate jemalloc
".
После перезапуска сервера, чтобы проверить, какие приложени используют менеджер памяти jemalloc выполним комманду "lsof /usr/lib64/libjemalloc.so.1
"