Jemalloc stammte 2006 aus Jason Evans 'Papier über die BSDCAN -Konferenz: "Eine skalierbare gleichzeitige Malloc -Implementierung für FreeBSD". Jason ist der Ansicht, dass PHKMALLOC (FreeBSDs frühere Malloc -Implementierung von Kamp (1998)) den Fall von Multiprozessoren nicht berücksichtigt, daher hat es eine schlechte Leistung unter Multithread -Parallelität (dies ist wahr), während Jemalloc für das Speicherzuweisungsmanagement unter Multithreaden geeignet ist. Seit 2007 wird es im Rahmen des FreeBSD -Standards eingeführt. Viele Softwaretechnologieinnovationen werden von FreeBSD initiiert. Die in FreeBSD weit verbreitete Technologie wird langsam in Linux importiert.
Nach Redis 2.4 wird Jemalloc standardmäßig für die Speicherverwaltung verwendet. Tengine integriert auch Jemalloc. Aus den Ergebnissen von Bewertungen verschiedener Parteien zeigt Jemalloc, dass es nicht mit Google TCMALLOC vergleichbar ist und beide im Bereich Speichermanager auf höchstem Niveau sind. Wie in der Abbildung unten gezeigt:
Am links links ist GLIBCs Malloc und das rechts rechts ist Jemalloc. Wie aus dem Diagramm hervorgeht, beträgt die Leistung von Jemalloc mehr als doppelt so hoch wie bei GLIBC. Sehr überwältigende Leistungsunterschiede. Anwendungen, die Jemalloc verwenden, sind daher natürlich viel schneller. Neben Jemalloc befindet sich TcMalloc. Die Leistung von TCMALLOC unterscheidet sich sehr davon, wobei Jemalloc2.1.0 4,5% langsamer ist. Die 1.4 -Version von tcMalloc in der Abbildung hat jetzt Version 2.1 erreicht. Tatsächlich sollten die beiden unvergleichlich sein. Jemalloc -Gründer Jason Evans erkannte dies ebenfalls und sagte, dass Jemalloc auf Computern über CPU Core 8 effizienter ist.
MySQL Performance Test- Jemalloc Speicherverwaltung: http://www.linuxeye.com/linux/191.html
Jemalloc wurde als Option zum "LNMP-Quellcode One-Click-Installationspaket" hinzugefügt
Installieren Sie 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 && make installieren und installieren und installieren/usr/usr/ush/örtlich/ush/ush. /etc/ld.so.conf.d/local.confldconfig
Optimieren Sie MySQL mit Jemalloc
Methode 1:
MySQL/Mariddb 5.5 -Kompilierungsmethode, fügen Sie die folgenden Parameter bei der Vorkompilierung von CMake hinzu
-Dcmake_exe_linker_flags = " -ljemalloc" -dwith_safemalloc = off
Methode 2:
Laden und ändern Sie MySQLD_Safe direkt und ändern Sie sie
Finden Sie Datei/usr/local/mysql/bin/mysqld_safe
Fügen Sie unter #executing mysqld_safe hinzu
Ld_preload =/usr/local/lib/libjemalloc.so
Starten Sie MySQL neu
Verwenden Sie den folgenden Code, um die Datei mySQLD_Safe automatisch zu ändern
SED -Is@Executing mySQLD_Safe@Executing mySQLD_Safe/Nexport ld_preload =/usr/local/lib/libjemalloc.so@'/usr/local/mysql/bin/mysqld_safeSeervice mysqld restart neutart
Optimieren Sie Nginx mit Jemalloc
Fügen Sie beim Kompilieren von Nginx die folgenden Parameter hinzu:
--with-ld-opt = "-ljemalloc"
Spezifische Implementierung:
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-with-http_flv_module /-with-http_gzip_static_module--with-ld-opt = "-ljemalloc" make && make install
Stellen Sie sicher, dass die Jemalloc -Optimierung nginx wie folgt wirksam ist
lsof -n | Grep Jemalloc