memcached壓力測試(附memcached安裝方法)

安裝環境:CentOS 6.4 

 

php的擴展memcache,不支持cas,所以我們要裝memcached擴展,memcached擴展是基於libmemcached,所以要先安裝libmemcached

 

一、下載軟件

1、libmemcached下載地址:https://launchpad.net/libmemcached/+download

文件:memcached-2.2.0.tgz

2、php-memcached下載地址:http://pecl.php.net/package/memcached

文件:libmemcached-1.0.18.tar.gz 

 

二、安裝libmemcached

[root@vm15 local]# mkdir -p libmemcached
[root@vm15 local]# tar zxvf libmemcached-1.0.18.tar.gz 
[root@vm15 local]# cd libmemcached-1.0.18
[root@vm15 libmemcached-1.0.18]# ./configure --prefix=/usr/local/libmemcached --with-memcached
[root@vm15 libmemcached-1.0.18]# make
[root@vm15 libmemcached-1.0.18]# make install

 

三、安裝php-memcached

[root@vm15 local]# mkdir -p phpmemcached 
[root@vm15 local]# tar zxvf memcached-2.2.0.tgz
[root@vm15 local]# cd memcached-2.2.0
[root@vm15 memcached-2.2.0]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20131106
Zend Module Api No: 20131226
Zend Extension Api No: 220131226
[root@vm15 memcached-2.2.0]# ./configure --enable-memcached --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached --disable-memcached 

[root@vm15 memcached-2.2.0]# make
[root@vm15 memcached-2.2.0]# make install
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20131226/
[root@vm15 memcached-2.2.0]# ll /usr/local/php/lib/php/extensions/no-debug-zts-20131226/

total 2140
-rwxr-xr-x. 1 root root 325608 Dec 30 15:59 memcached.so
-rwxr-xr-x. 1 root root 453766 Dec 30 17:44 memcache.so
-rwxr-xr-x. 1 root root 540834 Dec 19 15:38 opcache.so
-rwxr-xr-x. 1 root root 861055 Dec 30 16:47 redis.so

[root@vm15 memcached-2.2.0]# vi + /usr/local/php/lib/php.ini
加上extension=memcached.so
[root@vm15 memcached-2.2.0]# /usr/local/apache2/bin/apachectl restart
查看phpinfo可以看到支持了

 

四、安裝遇到的問題
1、安裝libmemcached過程中不要忘了,--with-memcached,不然會提示你

checking for memcached... no
configure: error: "could not find memcached binary"

2、你的memcached是不是1.2.4以上的,如果不是會提示你

clients/ms_thread.o: In function `ms_setup_thread':
/home/zhangy/libmemcached-0.42/clients/ms_thread.c:225: undefined reference to `__sync_fetch_and_add_4'
clients/ms_thread.o:/home/zhangy/libmemcached-0.42/clients/ms_thread.c:196: more undefined references to `__sync_fetch_and_add_4' follow
collect2: ld returned 1 exit status
make[2]: *** [clients/memslap] Error 1
make[2]: Leaving directory `/home/zhangy/libmemcached-0.42'

解決辦法是--disable-64bit CFLAGS="-O3 -march=i686",如果不用這個64位的long型數據,我想php擴展memcached,memcache也就沒什麼區別了,裝memcached也就沒什麼意思了。


Memslap是memcached服務器的壓力測試工具,它能產生可配置壓力,如:線程、併發、連接、運行時間、覆蓋、命中率、key的長度、value的長度、get/set比率等。另外,它還支持數據確認、失效時間確認、UDP、二進制協議,facebook檢測等操作。
默認安裝libmemcached之後,將自帶memslap的工具。
/usr/local/bin/libmemcached/memslap --s=127.0.0.1:21211 --c=128  
servers : 127.0.0.1:21211
concurrency: 128

memcached壓力測試工具memslap使用說明:
英文原版:http://www.krow.net/libmemcached/memslap.html

命令選項
-s, --servers=:列出一個或多個所要連接的memcached服務器端。服務器的數量一定要小於線程的數量e.g.: --

servers=localhost:1234,localhost:11211
-T, --threads=:線程數量,最好等於cpu數量。默認值爲8
-c, --concurrency=:負載需要虛擬的併發數量,默認值是128
-n, --conn_sock=:一個併發的tcp連接數量,默認值是1
-x, --execute_number=:set/get數量,默認值100w
-t, --time=:運行時間,其格式爲: s-seconds, m-minutes, h-hours, d-days e.g.: --time=2h.
-F, --cfg_cmd=:加載配置文件
-w, --win_size=:任務窗口大小,e.g.: --win_size=10k. 默認值爲10k
-X, --fixed_size=:value的大小
-v, --verify=:所要確認的數據比例, e.g.: --verify=0.01
-d, --division=:多重get的數量,默認值爲1即單個get
-S, --stat_freq=:定期清理靜態數據的間隔時間, e.g.: --resp_freq=10s.
-e, --exp_verify=:失效時間的比例, e.g.: --exp_verify=0.01。默認情況是不設置該選項
-o, --overwrite=:對象需要覆蓋的比例, e.g.: --overwrite=0.01.默認情況是不進行覆蓋。
-R, --reconnect:支持重新連接
-U, --udp:使用UDP協議,默認是TCP協議
-a, --facebook:啓動faceb檢測
-B, --binary:使用二進制協議,默認值是ascii協議
-P, --tps=:吞吐量, e.g.: --tps=10k.
-p, --rep_write=:前n個服務端可以寫數據, e.g.: --rep_write=2.
-b, --verbose:錯誤信息
-h, --help:幫助文檔
-V, --version:版本信息



發佈了166 篇原創文章 · 獲贊 208 · 訪問量 132萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章