目录

安装mamaslap过程中遇到的错误,记录一下,希望对你有帮助。

安装memaslap

wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
tar -zxvf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18
./configure -prefix=/usr/local/libmemcached --with-memcached --enable-memaslap
make  
make install

压测开始

/usr/local/libmemcached/bin/memaslap -s 127.0.0.1:9202 -t 1200s -T 96 -c 96 -X 100 &

参数说明:

-s, --servers=:要压测的一个或多个memcached服务器。

servers=localhost:11111,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:版本信息

问题1:安装完成后没有memaslap

/usr/local/libmemcached/bin/ 文件夹下没有 memaslap

在执行 ./configure -prefix=/usr/local/libmemcached --with-memcached --enable-memaslap make 时结果中有一条:checking test for a working libevent... no

正常的话应该是yes的

解决方法:安装 libevent-devel

yum install -y libevent-devel libevent

然后重新安装libmemcached

问题2:make时报错undefined reference to symbol pthread_getspecific@@GLIBC_2.17:

/usr/bin/ld: clients/ms_conn.o: undefined reference to symbol 'pthread_getspecific@@GLIBC_2.17' //usr/lib64/libpthread.so.0: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status make[1]: *** [Makefile:4708: clients/memaslap] Error 1 make[1]: Leaving directory '/home/olm/libmemcached-1.0.18' make: *** [Makefile:9973: install] Error 2

解决方法1:

编辑 Makefile 文件,找到 $(clients_memaslap_LDADD) $(LIBS) 后面追加 -lpthread

Linux安装mamaslap报错记录

解决方法2:

尝试进入 Makefile 并将-L/lib64 -lpthread添加到变量 LDFLAGS 中。

LDFLAGS变量位于Makefile文件2937行

然后 make clean & make & make install 即可

问题3:make时报错 ISO C++ forbids comparison between pointer and integer

vim 将 clients/memflush.cc 文件的 42 行和 51 行的 false 修改为 0

Linux安装mamaslap报错记录

然后 make clean & make & make install 即可.