jemalloc優化MySQL Nginx記憶體管理

2021-07-12 00:59:20 字數 2183 閱讀 1694

jemalloc源於jason evans 2023年在bsdcan conference發表的**:《a scalable concurrent malloc implementation for freebsd》。jason認為phkmalloc(freebsd』s previous malloc implementation by kamp (1998))沒有考慮多處理器的情況,因此在多執行緒併發下效能低下(事實如此),而jemalloc適合多執行緒下記憶體分配管理。從2023年開始以freebsd標準引進來。軟體技術革新很多是freebsd發起,在freebsd應用廣泛的技術會慢慢匯入到linux中。

redis 2.4版本之後,預設使用jemalloc來做記憶體管理;tengine也整合jemalloc。jemalloc從各方評測的結果可見與google tcmalloc都不相伯仲,皆為記憶體管理器領域最高水平。如下圖:

facebook

最左邊的就是glibc的malloc,最右邊的就是jemalloc。從圖表上可以看出,jemalloc的效能有glibc的兩倍以上。非常壓倒性的效能差異。因此,使用了jemalloc的應用程式自然會快很多。jemalloc旁邊的就是tcmalloc。tcmalloc的效能與其相差甚微,低jemalloc2.1.0慢4.5%。圖上和tcmalloc的1.4版本,而現在已經到2.1版本,因此實際上這兩者應該是不相仲伯的。jemalloc的創始人jason evans也意識到這一點,說在cpu core 8以上的計算機上jemalloc效率更高。

mysql效能測試--jemalloc記憶體管理:

jemalloc作為可選項已經新增到

《lnmp最新原始碼一鍵安裝包》

安裝jemalloc

使用jemalloc優化mysql

mysql/mariddb 5.5編譯方法,cmake預編譯時加上下面引數

-

dcmake_exe_linker_flags

="-ljemalloc"

-dwith_safemalloc

=off

或者直接載入,修改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優化nginx

驗證jemalloc優化nginx是否生效,如下

lsof -n 

|grep jemalloc

jemalloc 記憶體分配管理

今天在安裝mariadb的時候發現編譯一直提示乙個錯誤 usr bin ld cannot find ljemalloc pic 後來發現是因為沒有用這個jemalloc 可能是mariadb資料庫預設就使用這種方式管理多執行緒記憶體分配 一 首先這個jemalloc是什麼 jemalloc源於ja...

更好的記憶體管理 jemalloc

jemalloc的創始人jason evans也是在freebsd很有名的開發人員。此人就在2006年為提高低效能的malloc而寫的jemalloc。jemalloc是從2007年開始以freebsd標準引進來的。軟體技術革新很多是freebsd發起的。在freebsd應用廣泛的技術會慢慢匯入到l...

安裝redis報jemalloc錯誤

redis 4.0.10手動編譯安裝 採坑記 重點解決缺失jemalloc.h 一 前期準備 yum install y gcc wget wget cd redis 4.0.10 二 編譯過程,採坑記 make 1第1個報錯 zmalloc.h 50 31 fatal error jemalloc...