本文大纲
《如何做性能测试》
性能测试案例3
性能测试案例:Memcached缓存性能
目的
通过性能测试了解Memcached缓存的性能极限,并评估三种不同客户端(java-memcached-release_2.6.3、spymemcached-2.8.0、xmemcached-1.3.5)之间的性能差异。具体目标如下:
- 确定每种客户端在不同并发条件下的最大吞吐量。
- 评估读写比例对性能的影响。
软硬件条件
为了确保测试结果的可复现性,下面详细列出本次测试所使用的软硬件配置信息:
软件环境:
- 操作系统 : Mac OS 10.7.2
- Memcached版本 : 1.4.5
- 客户端版本 :
- java-memcached-release_2.6.3 (dange)
- spymemcached-2.8.0 (SPY)
- xmemcached-1.3.5
硬件环境:
- 服务器与客户端在同一台笔记本上(只有一台机器)
- CPU : Intel Core i5 2.4G 双核心 4线程
- 内存 : 4GB
- Memcached分配内存 : 2GB (写入的数据大约为700MB)
测试方法
本次测试使用了客户端程序模拟不同数量的并发请求,以评估每种客户端在特定条件下的性能。具体步骤如下:
- 使用三种不同的Memcached客户端(java-memcached-release_2.6.3、spymemcached-2.8.0、xmemcached-1.3.5)分别进行测试。
- 模拟N个并发请求,向服务器端的Memcached发出读写请求。其中:
- 20%为写操作
- 80%为读操作
- 所有的值(value)大小设定为64字节。
结果数据
随着测试中模拟的并发数逐渐增加,总的请求数也随之上升。具体结果如下:
| 并发数 | java-memcached-release_2.6.3 (dange) | spymemcached-2.8.0 (SPY) | xmemcached-1.3.5 |
|---|---|---|---|
| 100 | 34,851 QPS | 85,881 QPS | 104,031 QPS |

在上图中,每种客户端的QPS(每秒查询数)随着并发数的变化趋势清晰可见。
结论
本次测试表明,在相同的硬件和软件配置下,不同的Memcached客户端表现出显著的性能差异:
- java-memcached-release_2.6.3 (dange) 在100个并发请求时达到约34,851 QPS。
- spymemcached-2.8.0 (SPY) 在同一条件下的表现较好,达到了约85,881 QPS。
- xmemcached-1.3.5 表现最优,在相同条件下达到了约104,031 QPS。
因此,可以得出结论:在使用Memcached时,选择合适的客户端库对于提高系统性能至关重要。xmemcached-1.3.5 在本次测试中表现最好,适用于需要高并发和快速响应的应用场景。同时,读写比例对整体性能也有明显影响,建议根据实际应用需求调整操作类型的比例。