Jemalloc은 2006 년 BSDCAN 회의에서 Jason Evans의 논문에서 시작했습니다. Jason은 Phkmalloc (Kamp (1998)의 FreeBsd의 이전 Malloc 구현)은 멀티 프로세서의 경우를 고려하지 않으므로 멀티 스레드 동시성 (True)에서 성능이 좋지 않다고 생각합니다. 2007 년부터 FreeBSD 표준에 따라 도입되었습니다. 많은 소프트웨어 기술 혁신은 FreeBSD에 의해 시작됩니다. FreeBSD에서 널리 사용되는 기술은 Linux로 천천히 가져옵니다.
Redis 2.4 이후 Jemalloc은 기본적으로 메모리 관리에 사용됩니다. Tengine은 또한 Jemalloc을 통합합니다. Jemalloc은 다양한 당사자의 평가 결과에서 Google TCMalloc과 비교할 수 없으며 둘 다 메모리 관리자 필드에서 가장 높은 수준에 있음을 보여줍니다. 아래 그림과 같이 :
가장 왼쪽은 glibc의 malloc이고, 가장 오른쪽은 Jemalloc입니다. 차트에서 볼 수 있듯이 Jemalloc의 성능은 GLIBC보다 두 배 이상입니다. 매우 압도적 인 성능 차이. 따라서 Jemalloc을 사용하는 응용 프로그램은 자연스럽게 훨씬 빠릅니다. Jemalloc 옆에는 tcmalloc이 있습니다. Tcmalloc의 성능은 그것과 매우 다르며 Jemalloc2.1.0은 4.5% 느려집니다. 그림의 1.4 버전의 TCMalloc 버전은 이제 버전 2.1에 도달 했으므로 실제로는 비교할 수 없습니다. Jemalloc 설립자 Jason Evans는 또한 Jemalloc이 CPU Core 8 이상의 컴퓨터에서 더 효율적이라고 말하면서 이것을 깨달았습니다.
MySQL 성능 테스트-Jemalloc 메모리 관리 : http://www.linuxeye.com/linux/1914.html
Jemalloc은 "LNMP 최신 소스 코드 원 클릭 설치 패키지"에 추가되었습니다.
Jemalloc을 설치하십시오
cd lnmp/srcwget http://www.canonware.com/download/jemalloc/jemalloc-3.4.0.tar.bz2tar xjf jemalloc-3.4.0.tar.bz2cd jemalloc-3.4.0./configuremake && installecho '/lib/lib'> /etc/ld.so.conf.d/local.confldconfig
Jemalloc으로 MySQL을 최적화하십시오
방법 1 : 방법 1
mysql/mariddb 5.5 컴파일 방법, cmake 사전 컴파일시 다음 매개 변수를 추가하십시오.
-dcmake_exe_linker_flags = " -ljemalloc"-dwith_safemalloc = off
방법 2 : 방법 2.
mysqld_safe를 직접로드하고 수정하십시오
파일/usr/local/mysql/bin/mysqld_safe를 찾으십시오
#Executing MySQLD_SAFE를 추가하십시오
ld_preload =/usr/local/lib/libjemalloc.so
MySQL을 다시 시작하십시오
다음 코드를 사용하여 MySQLD_SAFE 파일을 자동으로 수정하십시오.
sed -i 's@실행 mysqld_safe@exebling mysqld_safe/nexport ld_preload =/usr/local/lib/libjemalloc.so@'/usr/local/mysql/bin/mysqld_safeservice mysqld Restart
Jemalloc으로 Nginx를 최적화하십시오
nginx를 컴파일 할 때 다음 매개 변수를 추가하십시오.
-with-ld-opt = "-ljemalloc"
특정 구현 :
cd lnmp/src/nginx-1.4.2make clean./configure ---prefix =/usr/local/nginx-user = www -group = www/-with-http_stub_status_module-with-http_ssl_module-with-http_module /-with-http_gzip_static_module-with-ld-opt = "-ljemalloc"make && make install
Jemalloc Optimization nginx가 다음과 같이 효과적인지 확인하십시오
lsof -n | grep jemalloc