MemCached安装完成后,进行了压力测试,主要参考了MemCached的javaclient的 类com.danga.MemCached.test.MemCachedTest。它的类主要问题是没有一个总的处理能力的描述。我进行了改写,提供了get和put的总吞吐量的汇总。
测试环境如下,
服务器:RedHat9, 512内存,P4内存,跑2个MemCached实例,运行memcached-1.2.1
客户端:单独一台机器,和服务器在一个局域网,100M网络带宽,运行java_memcached-release_1.5.1, jdk5.0
测试代码:
java 代码
测试结果:
测试完成! 启动线程数:1, 每线程执行测试数量: 1000, 测试数据大小(byte):1024
put处理时间:2515微秒,处理put速度: 每秒 789 次
get处理时间:1266微秒,处理get速度: 每秒 789 次
测试完成! 启动线程数:2, 每线程执行测试数量: 1000, 测试数据大小(byte):1024
put处理时间:3595微秒,处理put速度: 每秒 1471 次
get处理时间:2734微秒,处理get速度: 每秒 1471 次
测试完成! 启动线程数:3, 每线程执行测试数量: 1000, 测试数据大小(byte):1024
put处理时间:6250微秒,处理put速度: 每秒 1846 次
get处理时间:4829微秒,处理get速度: 每秒 1846 次
测试完成! 启动线程数:4, 每线程执行测试数量: 1000, 测试数据大小(byte):1024
put处理时间:8673微秒,处理put速度: 每秒 2063 次
get处理时间:7858微秒,处理get速度: 每秒 2063 次
测试完成! 启动线程数:5, 每线程执行测试数量: 1000, 测试数据大小(byte):1024
put处理时间:10655微秒,处理put速度: 每秒 2352 次
get处理时间:10625微秒,处理get速度: 每秒 2352 次
测试完成! 启动线程数:6, 每线程执行测试数量: 1000, 测试数据大小(byte):1024
put处理时间:14702微秒,处理put速度: 每秒 2042 次
get处理时间:16844微秒,处理get速度: 每秒 2042 次
测试完成! 启动线程数:7, 每线程执行测试数量: 1000, 测试数据大小(byte):1024
put处理时间:18766微秒,处理put速度: 每秒 2502 次
get处理时间:20265微秒,处理get速度: 每秒 2502 次
测试完成! 启动线程数:8, 每线程执行测试数量: 1000, 测试数据大小(byte):1024
put处理时间:23828微秒,处理put速度: 每秒 2586 次
get处理时间:25062微秒,处理get速度: 每秒 2586 次
测试完成! 启动线程数:9, 每线程执行测试数量: 1000, 测试数据大小(byte):1024
put处理时间:29515微秒,处理put速度: 每秒 2654 次
get处理时间:31141微秒,处理get速度: 每秒 2654 次
测试完成! 启动线程数:10, 每线程执行测试数量: 1000, 测试数据大小(byte):1024
put处理时间:37780微秒,处理put速度: 每秒 2285 次
get处理时间:42876微秒,处理get速度: 每秒 2285 次
没有测试下去了,看来8~9个线程效率最高,服务端测试的时候,CPU一直使用率很低,最多到5%.
以上测试结果最多到了2500左右,但有位朋友的测试结果非常惊人,一个线程都超过了3300和4800的处理量,他的传输数据量小点,只有0.1k,我测试了下,用这个数据量,顶多也是到3000多的并发。他的测试结果请看如下网址:
http://hi.baidu.com/jabber/blog/category/Memcached
分享到:
相关推荐
- Memcached运行在10.19.90.74上,版本1.4.15。 - Redis运行在10.19.90.77上,版本2.6.14。 - Tair的Config_server和Data_server分别在10.19.90.75和10.19.90.76上运行,版本日期为2013-10-24。 【测试结果分析】 ...
- **压力测试**: 连续大量地设置和获取数据,观察Memcached的响应时间和稳定性,检查是否存在性能瓶颈。 - **内存占用监测**: 监控Memcached内存使用情况,确保不会超出预设的内存限制。 3. **命中率测试**: - ...
**Memcached Windows 下安装与测试详解** ...记住,Memcached主要用于短期存储热数据,降低数据库的读取压力,优化Web应用性能。在实际应用中,根据需求调整配置,如内存分配、过期策略等,以达到最佳效果。
**标题与描述解析** 标题"memcached 64位 window"指的是在Windows操作系统上运行的64位版本的Memcached缓存系统。Memcached是一种分布式内存对象...正确配置和使用Memcached,能显著改善用户体验,降低服务器压力。
描述中提到的“绿色版memcached”,是指这是一个便携式的版本,不需在系统中留下任何配置痕迹,适合临时或测试环境使用。它附带了`php_memcached.dll`文件,这表明该版本特别考虑了与PHP的集成。`php_memcached.dll`...
5. **测试与优化**:完成上述步骤后,通过单元测试或集成测试确保缓存功能正常工作。根据应用需求和性能监控结果,可能需要调整缓存的过期时间、大小限制以及缓存策略。 在这个资源合集中,你可能会找到示例代码、...
- **测试类**:提供各个方法的测试用例,验证功能的正确性。 4. **源码实现细节** - **连接池管理**:为了提高性能,可能会实现连接池,复用已建立的连接,减少频繁创建和销毁连接的开销。 - **序列化与反序列化...
在提供的压缩包中,可能包含了一些关于如何使用或测试Memcached的资源,如`MemcachedTest`可能是用于测试Memcached的脚本或工具,而`网盘资源搜索-【51pansou.com】.txt`和`51pansou-海量网盘资源任意搜索.url`可能...
Memcached广泛应用于高并发的Web应用,如社交网络、新闻站点等,它可以极大地缓解数据库的压力,提高响应速度。同时,由于其轻量级和简单的设计,使得它易于集成到现有的应用架构中。 7. **对比Redis** Redis是另...
3. **命令行工具`: `memcached-client`或`telnet`可以直接与Memcached服务通信,进行测试和调试。 **五、源码分析** Memcached的源码主要由C语言编写,包括了服务器端和客户端的实现。源码阅读可以帮助理解其内部...
**memcached工具类** 在IT领域,`memcached`是一个高性能、分布式...对于需要提升网站性能,减少数据库压力的开发者来说,这是一个非常实用的资源。只需按照上述步骤,你就可以快速集成和利用`memcached`的缓存功能。
这不仅能够提高应用的响应速度,还能有效减轻数据库的压力,特别是在处理高并发请求时。同时,由于Memcached的分布式特性,它还可以在多台服务器之间共享缓存,进一步提高系统的扩展性和稳定性。在实际项目中,可以...
总的来说,memcached以其高效的内存管理和简单易用的接口,成为解决Web应用数据库压力的有效手段。通过合理的部署和使用,能显著提升应用的性能和用户体验。然而,需要注意的是,memcached并不适用于所有场景,例如...
3. **测试连接**:在PHP代码中编写简单的测试脚本,尝试连接到本地的memcached服务,确认扩展已正确安装并可以使用。 4. **使用PHP操作memcached**:学习并掌握基本的memcached PHP API,如`$memcached = new ...
通过这种方式,我们不仅可以实现跨服务器的Session共享,还可以利用Memcached的分布式特性,进一步提高Session读写的速度,降低单个服务器的压力。需要注意的是,由于Session数据存储在Memcached中,因此需要关注...
Memcached是一款流行的分布式内存缓存系统,它被用来提升应用性能,通过存储数据到内存中来减少数据库的访问压力。当我们将Memcached与Spring集成时,我们可以利用Spring的IoC(Inversion of Control)和AOP(Aspect...
5. 最后,通过编写PHP代码测试连接和操作Memcached服务器,验证安装是否成功。 **最佳实践** 在实际使用中,为保证性能和稳定性,需要注意以下几点: 1. 调整Memcached的内存分配,以适应服务器资源和应用需求。 ...
在实际应用中,memcached通常用于缓解数据库的压力,例如,将经常访问的数据存储在内存中,减少对数据库的读取次数。这样可以显著提升网站的响应速度,尤其是在高并发访问的场景下。此外,由于memcached是分布式的,...
Memcached是一款广泛应用的高性能分布式内存对象缓存系统,它能够有效地缓解数据库的压力,提高系统的响应速度。`memcached-session-manager`是Java的一个库,用于在基于Tomcat的Web应用中实现基于Memcached的...