讓Redis使用TCMalloc,實現高效能NOSql伺服器 « Elton's Blog
讓Redis使用TCMalloc,實現高效能NOSql伺服器
by Elton on 七.28, 2011, under C/C++, Linux, NoSQL
TCMalloc(Thread-Caching Malloc)是google開發的開源工具──“google-perftools”中的成員。與標準的glibc庫的malloc相比,TCMalloc在記憶體的分配上效率和速度要高得多,可以在很大程度上提高MySQL伺服器在高並發情況下的效能,降低系統負載。
TCMalloc庫的安裝步驟(Linux環境):
Step 1. 64位作業系統請先安裝libunwind庫(32位作業系統不要安裝)
libunwind庫為基於64位CPU和作業系統的程式提供了基本的堆棧輾轉開解功能,其中包括用於輸出堆疊追蹤的API、用於以編程方式輾轉開解堆棧的API以及支援C++異常處理機制的API。
123456 |
wget http://download.savannah.gnu.org/releases/libunwind/libunwind-0.99-alpha.tar.gz tar zxvf libunwind-0.99-alpha.tar.gz cd libunwind-0.99-alpha/ CFLAGS=-fPIC ./configure make CFLAGS=-fPIC make CFLAGS=-fPIC install |
Step 2、安裝google-perftools:
12345678 |
wget http://google-perftools.googlecode.com/files/google-perftools-1.8.1.tar.gz tar zxvf google-perftools-1.8.1.tar.gz cd google-perftools-1.8.1/ ./configure --disable-cpu-profiler --disable-heap-profiler --disable-heap-checker --disable-debugalloc --enable-minimalmake && make install sudo echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf #如果沒有這個檔案,自己建一個sudo /sbin/ldconfig |
Step 3. 安裝Redis
12345 |
$ curl -O http://redis.googlecode.com/files/redis-2.2.12.tar.gz $ tar xzvf redis-2.2.12.tar.gz $ cd redis-2.2.12 $ make USE_TCMALLOC=yes$ sudo make install |
Step 4. 檢查tcmalloc是否生效
12 |
sudo lsof -n | grep tcmallocredis-ser 31590 elton mem REG 8,3 1155539 4856411 /usr/local/lib/libtcmalloc_minimal.so.0.2.1 |
Step 5. 測試Redis
123456789101112 |
# 修改設定檔:vim redis.conf# 找到 daemonize,將後面的no改為yes,讓其可以以服務方式運行# 然後啟動 redis:$ ./redis-server ./redis.conf #串連資料庫進行測試$ src/redis-cliredis> set foo barOKredis> get foo"bar" |