Jemallocは、2006年のBSDCAN会議に関するJason Evansの論文「FreeBSDのスケーラブルな同時マロック実装」から生まれました。ジェイソンは、Phkmalloc(FreeBSDの以前のMalloc実装によるKamp(1998))はマルチプロセッサの場合を考慮していないため、マルチ読み取りの並行性の下でパフォーマンスが低いと考えていますが(これは真)、Jemallocはマルチスレッドの下でのメモリ配分管理に適しています。 2007年以来、FreeBSD標準の下で導入されています。多くのソフトウェアテクノロジーの革新は、FreeBSDによって開始されます。 FreeBSDで広く使用されている技術は、Linuxにゆっくりとインポートされます。
Redis 2.4の後、Jemallocはデフォルトでメモリ管理に使用されます。 TengineはJemallocも統合します。さまざまな関係者による評価の結果から、Jemallocは、Google Tcmallocに匹敵しないことを示しており、どちらもメモリマネージャーフィールドで最高レベルにあることを示しています。下の図に示すように:
左端はglibcのマロックで、右端はjemallocです。チャートからわかるように、JemallocのパフォーマンスはGlibcの2倍以上です。非常に圧倒的なパフォーマンスの違い。したがって、jemallocを使用するアプリケーションは、自然にはるかに高速になります。 jemallocの隣にはtcmallocがあります。 Tcmallocのパフォーマンスはそれとは大きく異なり、Jemalloc2.1.0は4.5%遅いです。図のTcmallocの1.4バージョンはバージョン2.1に達しているため、実際には2つは比類のないものになるはずです。 Jemallocの創設者であるJason Evansは、JemallocがCPUコア8を超えるコンピューターにより効率的であると述べて、これにも実現しました。
MySQLパフォーマンステスト - ジェマロックメモリ管理: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 && make intertecho '/usr/usr/usr/usr/usr/usr/usr/usr /etc/ld.so.conf.d/local.confldconfig
jemallocでmysqlを最適化します
方法1:
mysql/mariddb 5.5コンピレーション方法、cmake precompilationのときに次のパラメーターを追加します
-dcmake_exe_linker_flags = "-ljemalloc" -dwith_safemalloc = off
方法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@execting mysqld_safe@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 = www/ - with-http_stub_status_module -with-http_ssl_module -with-http_flb_modue /-http_gzip_static_module -with-ld-opt = "-ljemalloc" make && make install
次のように、Jemalloc Optimization Nginxが効果的であることを確認してください
LSOF -N | Grep Jemalloc