memcache原生,php客户端,java客户端的性能对比
硬件环境: 虚拟机:10.32.25.111 (16 Intel(R) Xeon(R) CPU E5645 @ 2.40GHz 内存16G) 物理机:10.32.25.45 (8 Intel(R) Xeon(R) CPU E5-2609 0 @ 2.40GHz 内存32G) java/php/nginx
硬件环境:虚拟机:10.32.25.111 (16 Intel(R) Xeon(R) CPU E5645 @ 2.40GHz 内存16G)
物理机:10.32.25.45 (8 Intel(R)Xeon(R) CPU E5-2609 0 @ 2.40GHz 内存32G) java/php/nginx
压力机:10.32.25.46 (8 Intel(R) Xeon(R) CPU E5-2609 0 @ 2.40GHz 内存32G) memcached/xmemcache
网格环境:千兆
软件环境:memcached -d -p 11211 -u memcached -m 4096 -c 20000 -P/var/run/memcached/memcached.pid
测试工具: 原生压力工具: memaslap -s 10.32.25.45:11211 -T 8 -c 400 -F /usr/local/bin/memslap.cnf -x 10000000
客户端压力工具:http_load –p 40 –s 60 java-all-url.txt
网络监控工具:nload / iptraf / top
测试数据:key值范围 50-100b;value值范围1b-1k;
测试结果:
| 原生 | php_memcached | java_xmemcache | ||||||
操作 | cpu(id%) | qps(次/秒) | 响应时间(s) | cpu(id%) | qps(次/秒) | 响应时间(s) | cpu(id%) | qps(次/秒) | 响应时间(s) |
读 | 84 | 78512 | 0.000018 | 7 | 9677 | 0.32 | 23 | 12112 | 0.61 |
写 | 76 | 54183 | 0.000012 | 11 | 9567 | 0.32 | 26 | 12191 | 0.6 |
混合1:9 | 73 | 149743 | 0.000006 | 6 | 9587 | 0.32 | 30 | 13133 | 0.63 |
测试结论:
1、 原生状态下的memcache可以支撑每秒钟14万的混合读写,压力增加后网卡成为瓶径,每秒钟传输达到120M/s,达到上限;
2、 通过Php的memcached客户端读写memcache,每秒钟处理请求在9500个左右,此时php+nginx服务器成为瓶径,cpu使用率超过80%,达到上限;
3、 通过java的xcmemcache客户端读写memcache,每秒钟处理请求在13000个左右,此时java服务器成为瓶径,cpu使用率超过80%,达到上限;
4、 客户端中除了上述两个,还有php的memcache和java的spymemcache也进行了尝试性测试,但稳定性较差,失败率很高,所以没有进行详细测试,如有需要再进行;
更多推荐
所有评论(0)