TCMalloc(Thread-Caching Malloc)是google-perftools工具中的一個,與標準的glibc庫的malloc相 比,TCMalloc在內存的分配上效率和速度要高得多,能夠提升Mysql服 務器在高併發狀況下的性能,下降系統負載。html
Google-perftools的項目:http://code.google.com/p/google-perftools/mysql
google-perftools
包括
TCMalloc
、heap-checker
、heap-profiler
和cpu-profiler
共4
個組件,在只 用
TCMalloc
的場景下,能夠不編譯其餘三個組件,使用tcmalloc_minimal
就足夠。
下面介紹在Linux SUSE x86
上安裝
TCMalloc
動態庫的過程。
wget http://google-perftools.googlecode.com/files/google-perftools-1.4.tar.gz
tar zxvf google-perftools-1.4.tar.gz
cd google-perftools-1.4
Mysql
服 務器只須要用SO
動態庫就能夠了,沒有必需要把其餘的文件(
頭文件靜態庫文檔等)
也安裝到/usr/local/
裏。先安裝到一個臨時文件夾:
mkdir /tmp/tc
./configure --prefix=/tmp/tc --disable-cpu-profiler --disable-heap-profiler --disable-heap-checker --disable-debugalloc --enable-minimal
加上後面的幾個參數是指只生成tcmalloc_minimal
。
./configure --prefix=/tmp/tc
若是要將文件直接安裝到文件,就不須要臨時目錄了,可:
./configure
使用./configure –h
可查看安裝選項。
編譯安裝:
make && make install
ls -alt /tmp/tc/lib/*
使用了最小安裝,拷貝tcmalloc_minimal
的動態庫到系統庫目錄:
cp /tmp/tc/lib/
libtcmalloc_minimal.so.0.0.0
/usr/local/lib
ln -s /usr/local/lib/libtcmalloc_minimal.so.0.0.0 /usr/local/lib/libtcmalloc.so
ln -s /usr/local/lib/libtcmalloc_minimal.so.0.0.0 /usr/local/lib/libtcmalloc.so.0
ln -s /usr/local/lib/libtcmalloc_minimal.so.0.0.0 /usr/local/lib/libtcmalloc.so.0.0.0
rm -rf /tmp/tc
修改
mysql
服 務的啓動腳本mysqld_safe
,在「 # executing mysqld_safe
」行後添加行:
export LD_PRELOAD="/usr/local/lib/libtcmalloc.so"
/usr/local/mysql/bin/mysqladmin shutdown
驗證
mysqld 32398 mysql mem REG 8,3 668454 1477703 /usr/local/lib/libtcmalloc_minimal.so.0.0.0