最近有个memcache压测的需求, 不需要复杂操作, 只需要对 mc连一下, 最好可以做一次get/set
初衷是测试aws elastiCache backlog参数对qps的影响, 后来发现这个参数是不能调的...ToT
试了三种方法, 先放结论
mcperf, 这货好用, 用到了 2k qps
还试了 nc, 和 php的打法, qps都上不去
1. mcperf
单机用到了 2000qps, 没有再往上加, cpu占用率低, 完全无压力...
安装和使用, 如下
git clone git://github.com/twitter/twemperf.git
cd twemperf
autoreconf -fvi
##这里有什么报错, Google下一般能解决
CFLAGS="-ggdb3 -O0" ./configure --enable-debug
make
ls -l src/mcperf -h ##能用了
##直接压咯
## 超时 1s, 2000qps, 发1200000, 大于就是10分钟的样子
./mcperf -s 1.1.1.1 -p 11211 -l 0 -t 1 --conn-rate=2000 --num-conns=1200000
2. nc压
写了个shell 多线程的, 每个线程都去 nc -z 1.1.1.1 11211
一开始, 能上到 几百qps, 后面不知道原因, 慢慢回落, 完全到不了需要的压力
cpu占用率不算很高, 但qps不稳定 而且不高...
3. php
写了个简单的php, 把多余的扩展全部注释掉
因为水平辣鸡, 也就写了个shell的多线程去调php
cpu的load 飙到 100, qps后面稳定下来以后, 机子负载虽高, 但不算太卡, 但qps也就 几百