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 是一个自由开源的、高性能的、分布式的内存对象缓存系统。它可以将数据库查询结果、页面内容、sessions 等临时数据缓存在内存中,从而加速网站的访问速度。下面是 ...
总结来说,构建Memcached集群并在Linux上实现淘宝月光宝盒架构是一项涉及多个步骤的任务,包括安装Memcached、配置集群、设置客户端以及部署和管理MoonBox架构。理解这些概念和技术对于优化大规模Web应用的性能至关...
7. **监控和维护**:使用监控工具观察集群的运行状态,定期检查和更新配置,以应对可能出现的性能问题或故障。 这个集群配置可以为大型Web应用提供高性能、高可用性和可扩展性。然而,实现这样的系统需要对各个组件...
2. **可能的配置文件**:如XML配置文件,定义了Tomcat如何与Memcached集群通信,包括服务器地址、端口、缓存策略等。 3. **示例代码**:可能包含演示如何在Tomcat应用中集成Memcached的Java代码片段。 4. **文档**:...
本文将详细介绍如何在多个服务器上搭建一个Memcached集群,以实现数据的高可用性和负载均衡。 ### 一、安装Memcached 在开始搭建集群之前,首先需要在所有参与节点上安装Memcached。对于Linux系统,通常使用包管理...
高性能服务器集群的架设及优化笔记 服务器集群架设是指将多个服务器组合成一个集群,以提高服务器的性能和可扩展性。在高流量网站中,服务器集群架设是必不可少的。下面是服务器集群架设的笔记,涵盖了架设、优化和...
### Nginx+Tomcat+Memcached 共享 Session 集群配置 #### 一、概述 在大型分布式系统中,为了实现高可用性和负载均衡,常常会使用 Nginx 作为反向代理服务器来分发请求到后端多个 Tomcat 实例上。然而,传统的基于...
memcached,redis性能测试,内存缓存系统的性能测试;
而Memcached则是一款高性能、分布式的内存对象缓存系统,常用于缓解数据库负载,提高网站性能。当多个Tomcat实例共同构成一个集群时,如何有效地实现Session数据的共享成为一个挑战。本篇文章将深入探讨如何将Tomcat...
“memcached(五)单台服务器部署单线程性能测试”这个标题表明我们将探讨的是关于memcached的第五个主题,主要聚焦在如何在一台服务器上部署并测试其单线程的性能。memcached是一款开源的、高性能、分布式内存对象...
Memcached是一种高性能的分布式内存缓存服务器,主要用于减少数据库查询次数,提高动态Web应用的速度和可扩展性。其开发团队来自LiveJournal,官网为http://www.danga.com/memcached/。 Memcached的主要特点包括: ...
标题中的“tomcat7 memcached集群”指的是在Tomcat 7这个流行的Java应用服务器中,利用memcached构建的分布式缓存系统,以实现session共享。Session共享是Web应用程序中的一个关键概念,它允许用户在不同服务器之间...
它利用Memcached这个高性能、分布式的内存对象缓存系统来存储和管理用户的Session数据,从而实现Session在不同服务器之间的共享。以下是关于这个主题的详细知识: 1. **Memcached简介** Memcached是一款开源的、高...
6. **测试**:现在,当用户在任何一台 Tomcat 服务器上创建 Session,Session 数据都会被复制到 Memcached 集群,并可供其他服务器访问。可以通过观察 Memcached 客户端工具或者监控日志来验证 Session 是否成功共享...
Memcached是一款高性能、分布式内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库的负载。它通过在内存中存储数据来提供快速的数据访问,从而提高应用程序的性能。本安装程序"memcached-win32-1.4.4-54-g136cb...
标题 "Nginx+Tomcat+Memcached集群Session共享" 描述了在分布式环境中如何通过Nginx反向代理服务器、Tomcat应用服务器集群以及Memcached缓存系统来实现Session的共享。这是一个常见的高可用性和负载均衡解决方案。...
### Memcached内存分析、调优、集群 #### 1. Memcached背景 Memcached是一款高性能的分布式内存对象缓存系统,旨在通过减轻数据库负载来加速动态Web应用的响应速度。它通过在内存中缓存数据和对象来减少读取数据库...
Memcached服务器是指使用Memcached缓存服务器来提高服务器的性能和可扩展性。Memcached服务器可以将频繁访问的数据存储在内存中,以提高服务器的响应速度和reduce数据库的负载。 部分内容解释 1. 安装Memcached...
在构建高性能、高可用性的Web服务时,"Nginx+Tomcat+Memcached集群"是一种常见的架构模式。这种架构利用了Nginx的反向代理和负载均衡能力,Tomcat作为Java应用服务器处理业务逻辑,而Memcached作为分布式内存缓存...