jemalloc

項目的線上服務器,在code中大量使用了std::map,發現就存在一個問題,這個map使用後,clear後內存並不能很好的釋放,這個主要就是std malloc的問題。可以嘗試使用jemalloc和tcmalloc這些三方的malloc庫。在目前我項目中,jemalloc的表現最符合需求。

所以我們在apache module中使用jemalloc。這樣map在clear的時候可以很好的釋放內存,不會造成服務器的內存壓力。

以下爲apache module如何安裝使用jemalloc的sample:

1.jemalloc的下載:

http://www.canonware.com/download/jemalloc/

使用最近版本的jemalloc:

http://www.canonware.com/download/jemalloc/jemalloc-3.5.0.tar.bz2

~$ wget http://www.canonware.com/download/jemalloc/jemalloc-3.5.0.tar.bz2

 

2.解壓下載下來的tar包

~$ tar jxvf jemalloc-3.5.0.tar.bz2

 

3.安裝jemalloc shell:

~$ ./configure --prefix=/usr/local

~$ make

~$ sudo make install

 

4.apache module使用jemalloc:

在apachectl腳本最前面中加入:

export LD_PRELOAD=/usr/local/lib/libjemalloc.so



5.檢查apache module是否正常引用了jemalloc:

~$ sudo cat/proc/$httpd_pid/maps


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章