Используем менеджер памяти Jemalloc для всех Linux приложений
Источник: Используем менеджер памяти Jemalloc для всех Linux приложений
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 для всех приложений в системе, для чего после установки самой библиотеки (в Debian):
# apt-get install libjemalloc1
Или в CentOS:
# yum install jemalloc
Теперь достаточно создать файл /etc/ld.so.preload (см. man ld.so) и указать путь к библиотеке (в Debian):
/usr/lib/i386-linux-gnu/libjemalloc.so.1
Или в CentOS:
/usr/lib64/libjemalloc.so.1
После чего перезапустить систему. Для определения правильного местарасположения библиотеки jemalloc испольуйте команду:
$ locate jemalloc
После перезапуска сервера, чтобы проверить, какие приложени используют менеджер памяти jemalloc выполним комманду:
$ lsof /usr/lib64/libjemalloc.so.1
Дополнительные материалы: