使用jemalloc优化java_Jemalloc优化MySQL和Nginx
Redis 2.4版本之后,默認(rèn)使用jemalloc來(lái)做內(nèi)存管理;tengine也整合jemalloc。jemalloc從各方評(píng)測(cè)的結(jié)果可見與google tcmalloc都不相伯仲,皆為內(nèi)存管理器領(lǐng)域最高水平。如下圖:
最左邊的就是glibc的malloc,最右邊的就是jemalloc。從圖表上可以看出,jemalloc的性能有g(shù)libc的兩倍以上。非常壓 倒性的性能差異。因此,使用了jemalloc的應(yīng)用程序自然會(huì)快很多。Jemalloc旁邊的就是tcmalloc。Tcmalloc的性能與其相差甚 微,低jemalloc2.1.0慢4.5%。圖上和tcmalloc的1.4版本,而現(xiàn)在已經(jīng)到2.1版本,因此實(shí)際上這兩者應(yīng)該是不相仲伯的。 Jemalloc的創(chuàng)始人jason evans也意識(shí)到這一點(diǎn),說(shuō)在cpu core 8以上的計(jì)算機(jī)上jemalloc效率更高。
安裝jemalloc
cd?lnmp/src
wget?http://www.canonware.com/download/jemalloc/jemalloc-3.4.0.tar.bz2
tar?xjf?jemalloc-3.4.0.tar.bz2
cd?jemalloc-3.4.0?./configure
make?&&?make?install
echo?'/usr/local/lib'?>?/etc/ld.so.conf.d/local.conf
ldconfig
使用jemalloc優(yōu)化MySQL
方法1.
MySQL/MaridDB 5.5編譯方法,cmake預(yù)編譯時(shí)加上下面參數(shù)
-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
重新啟動(dòng)MYSQL
使用下面代碼自動(dòng)修改mysqld_safe文件
sed?-i?'s@executing?mysqld_safe@executing?mysqld_safe\nexport?LD_PRELOAD=/usr/local/lib/libjemalloc.so@'?/usr/local/mysql/bin/mysqld_safe
service?mysqld?restart
使用jemalloc優(yōu)化Nginx
編譯NGINX時(shí)添加以下參數(shù):
--with-ld-opt="-ljemalloc"
具體實(shí)現(xiàn):
cd?lnmp/src/nginx-1.4.2
make?clean
./configure?--prefix=/usr/local/nginx?--user=www?--group=www?\
--with-http_stub_status_module?--with-http_ssl_module?--with-http_flv_module?\
--with-http_gzip_static_module?--with-ld-opt="-ljemalloc"
make?&&?make?install
驗(yàn)證 jemalloc 是否運(yùn)行:
lsof?-n?|?grep?jemalloc
總結(jié)
以上是生活随笔為你收集整理的使用jemalloc优化java_Jemalloc优化MySQL和Nginx的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 计算机网络纳新水粉画,小学教育专业“书法
- 下一篇: linux cmake编译源码,linu