Memcached集群性能测试有感:请使用尽可能高配置的性能测试服务器
2010年04月06日
"应使用尽可能好配置的性能测试服务器",这句话初看就是句费话!谁不想用好配置的机器当服务器呢?
在最近一次Memcached集群性能测试中,由于资源紧张,使用了配置相对差的几台服务器作了集群,而且这几台服务器配置还不全一样。
遇到一个非常诡异的现象,在进行稳定性测试过程中缓存命中率一步下降。单台服务器每秒事务数可超过2万,五台集群在一起,反而3万都达不到,而且出现大量连接超时的现象。百思不得其解。
每每遇到性能问题,分析常是最头疼的事情。上述现象,表现上看起来是应用程序稳定性不好,但为什么单台性能那么好,而集群5台反而差呢?其中一定有蹊跷。
首先我开始怀疑我的测试过程是否有错误或遗漏,但是翻查了过往的测试结果,过去的测试数据中确实没有未命中的情况。
加大压力后,开始出现大量"连接超时"、"连接被重置"的错误。然后观察了一下服务端的Tcp连接状态,发现当连接数超过3000时后Syn_recv状态逐步变多。过程中状态变多,说明服务器开始出现性能瓶颈。此时点击率还不到3000,这绝不是服务器的最大处理能力!
开始做减法,逐步排查。首先排除连接数的干扰,使用尽量少的虚拟用户来测试服务器的最大处理能力。果然,服务器点击率达近1万。那么就是连接数导致性能下降的!Cpu使用率不高、内存大量剩余、磁盘IO也没有瓶颈。这下就不能不怀疑Java了,它在做什么呢?
然后用Jconsole监控了一下JbossWeb这一看我就明白了,连接就占用了内存,内存耗尽Java频繁的GC,所以就导致连接超时、连接被重置。
随之给Java分配足够的内存,可是加大压力,还是会出现一些连接超时和连接重置的问题,但量要明显减少。为彻底查清问题,再做减法。不测程序,直接测静态页面。发现静态页面也存在连接超时、连接被重置的现象。CPU使用率接近80%,软中断占用CPU不断升高,连接数不断添加,后续出现大量Time_wait。明显这表示已经达到硬件的最高性能了。
分享到:
相关推荐
全面的memcached测试案列和详细讲解
Memcached 服务器集群安装配置和测试
memcached,redis性能测试,内存缓存系统的性能测试;
memcached集群搭建,包含淘宝月光宝盒架构
memcachedredis性能测试.docx
Memcached集群搭建 操作详细 包含安装memcached单实例和集群操作的详细文档
tomcat + apache + memcached 集群jar包
Nginx+Tomcat+Memcached共享session集群配置
由国内著名技术社区联合推荐的2012年IT技术力作:《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》,即将上架发行,此书从Web应用、数据备份与恢复、网络存储应用、运维监控与性能优化、集群高级应用等...
Tomcat+MemcachedRedis集群,有视频实战以及源码。包含Tomcat性能优化,Redis基础入门以及使用场景,性能优化
1、高性能Web服务器Nginx的配置与部署研究(1)Nginx简介及入门示例 内容:概述Nginx的背景知识和简单的入门实例。 2、高性能Web服务器Nginx的配置与部署研究(2)Nginx入门级配置与部署及“Hello World” 内容:...
《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》以构建高性能Linux服务器为核心内容,从Web应用、数据备份与恢复、网络存储应用、运维监控与性能优化、集群高级应用等多个方面深入讲解了如何构建高性能...
memcached介绍 memcached安装 memcached操作 内存存储机制 数据过期与删除机制 php操作memcached 多服务器集群算法 缓存无底洞效应 缓存雪崩 老数据被踢现象 结课作业
资源名称:memcached原理和使用详解内容简介: Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库...
memcached单机到集群完整搭建过程
分析每个slabs的内存使用情况,浪费了多少内存,可用内存等信息。 使用说明: memcached.py 172.16.1.1:11211 # shows slabs memcached.py 172.16.1.1:11211 start # shows stats memcached.py 172.16.1.1:11211 ...
memcached-redis性能测试
Nginx+Tomcat+Memcached集群Session共享实例,Nginx 1.81 + tomcat1 + tomcat2 + Memcached 完整可运行 访问根目录下 test.jsp 可看效果
《决战Nginx系统卷:高性能Web服务器详解与运维》 的最后一部分是关于Nginx使用缓存技术的方法,共列举了Nginx使用的五大缓存,特别是广泛使用的代理缓存、Memcached和Varnish,另外对于Memcached服务器的使用贯穿...
memcached实现集群的session共享问题,处理集群服务器情况下,memcached的session共享解决方案