Используем менеджер памяти Jemalloc для всех Linux приложений

archive view archive save

ram-tux-logo 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"


Об авторе
АдМинь БагоИскатель
АдМинь БагоИскатель ярый борец за безглючную работу любых механизмов и организмов во всей вселенной и потому пребывает в вечном поиске всяческих багов, а тот кто ищет как известно всегда находит. Когда что-то или кого-то вылечить не в состоянии, то со словами "Я в аду, а вы все черти" уходит в запой выйдя из которого снова берётся лечить неизлечимое.
Ещё статьи автора
Комментарии в блоге
Новое на форуме