系统怎么这么慢???
甲方的人又从楼上走下来,边走变嚷嚷这慢慢慢。
嗯?怎么可能,昨天不是放大连接池了么,为什么还慢?
迅速拾掇出昨天的定位步骤,三步下来,不属于任何一种情况:cpu、内存、正常! tomcat没有溢出!!没有连接不够用的异常!!!
这里需要介绍一下我们的系统架构,前端apache负载均衡到后面的四个集群节点,apache独立部署在一台主机上,四个节点分别部署在两台主机,每台主机各两个。
用户反映说登陆页面打开要好长时间。静心想想这个过程吧。
请求到了apache,apache根据负载均衡策略,分发请求到后面的四个节点。现在是页面打不开,那也就是说服务久久没有响应。无非是两种情形:
一、请求在apache这里排队,没有及时分发到各个节点
二、请求在tomcat这里排队,没有及时响应
好吧,来证实一下我们的思路哪一个是正确的。
由于刚好我先登陆了节点所在主机,就先从第二个假设开始验证吧。
查看节点ajp端口的连接数:netstat -an|grep 8501|wc -l
此命令一出,可迅速判定是不是tomcat请求排队。
分别对四个节点做了此番测试之后,终于发现,节点一有700多个established状态的连接
而其余三个节点的established状态的连接仅有几十个!!!
至此,至少可以说明一个问题,apache负载没有分发均衡!!
查看apache的分发策略,我们采用的是亲合式。stick_session
此方式的好处是请求一个主机之后,apache会设置cookie到客户端,以后客户端的请求就会向cookie中指定的节点固定发送。
比如,客户A访问的是节点一,那么以后客户A只会被分发到节点一上。
结合现在的状况,说明很多客户的cookie都设置成节点一来响应,所以apache也无能为力,只能分发到节点一。
至此,你可能会说,为什么不用回话复制的分发策略呢。哎,由于甲方要求不让使用tomcat,而是使用的一个收费的对tomcat进行了包装的一个第三方产品,此产品只支持亲和式的分发策略,身不由己啊。。。
解决方案:
给apache配置一个新的请求控制器,对于首页的请求,即登陆系统经历的第一页面,让此控制器来处理。此控制器不采用亲和式分发策略,所以一旦客户请求这个页面,那么肯定会重新设置cookie到客户端,而非之前客户端缓存下的节点。这个办法相当于我们帮助apache做了一次分发。使得客户请求系统时,总是能获得一个信息cookie,这样可以一定程度上辅助apache重新做一下分发。
修改apache配置:worker.proerties和http.conf,重启,得意。。。
后面还有硬仗等着呢。。。
相关推荐
视频教程
《数据库性能调优--原理与技术》是一本深入探讨数据库性能优化的专业书籍,旨在帮助读者理解和掌握提升数据库系统效率的关键技术和方法。通过学习本书,读者能够有效地解决在实际工作中遇到的数据库性能问题,提高...
《数据库性能调优——原理与技术2》这本书专注于Oracle数据库的性能优化,通过深入探讨其内部机制和技术细节,为读者提供了实用的优化策略和最佳实践。 **数据库性能调优的目的**主要包括: - 提高查询响应速度,...
性能调优-(2)Explain详解与索引优化最佳实践
#### 二、性能调优的技术与方法 **2.1 SQL查询优化** SQL查询是数据库中最常见的操作之一,其执行效率直接影响着整个系统的性能。为了提高查询效率,可以采用以下几种方法: - **索引使用:** 合理地为表建立索引...
数据库性能调优是IT领域中的一个关键话题,尤其是在大数据时代,高效、稳定的数据处理能力直接影响着业务的运行效率。这个压缩包文件“数据库性能调优--原理与技术”很可能包含了关于如何优化数据库性能的深入讲解和...
### 数据库性能调优——原理与技术(Oracle) #### 一、引言 在当今数据驱动的世界里,数据库系统的性能直接影响着企业的业务效率和用户体验。《数据库性能调优——原理与技术1.pdf》主要针对Oracle数据库,深入...
《JVM性能调优-JVM内存整理及GC回收》是一份深入探讨Java虚拟机(JVM)优化的重要学习资料,特别适合对JAVA编程有经验的开发者。这份文档详细阐述了JVM性能调优的关键概念,包括JVM内存模型、垃圾回收(Garbage ...
#### 二、数据库性能调优的基本原理 **2.1 SQL查询优化** - **索引管理:** 建立合适的索引可以显著提高查询速度。索引的选择和设计应根据实际查询模式来进行。 - **查询语句优化:** 避免使用复杂的子查询和关联...
#### 二、性能调优概述 性能调优是指通过调整系统配置或应用程序设置来提高计算机系统的运行效率的过程。在AIX中,性能调优主要关注以下方面: - **CPU性能** - **内存性能** - **I/O子系统性能** - **网络子系统...
Oracle 性能调优 -- 解决 CPU 高度消耗 (100%) Oracle 性能调优是数据库管理和维护中非常重要的一部分。当数据库出现性能问题时,需要快速定位和解决问题,否则将影响业务的正常运作。在这里,我们将讨论如何解决 ...
学习Java程序性能调优视频教程后,有助于您的专业技术大度上升。解决工作诸多问题,快来吧。
标题“AIX性能调优-牛新庄”指向了专门针对AIX操作系统进行性能调优的技术内容,AIX是IBM开发的一种UNIX操作系统,主要应用于其Power Systems服务器。性能调优是系统管理中的一项重要任务,它旨在提高系统的响应速度...
Oracle性能调优-朝拜先知之旅 本文主要介绍了在 Linux 环境下安装 Oracle 10g 的方法,并对 Oracle 性能调优进行了详细的说明。下面是本文的知识点总结: 一、Oracle 基本概念 * Oracle 是一种关系型数据库管理...
CPU成本主要涉及应用谓词(第一阶段或第二阶段)、遍历页(索引和表空间)以及排序操作。而I/O成本则依赖于DB2目录中的统计信息、缓冲池的大小以及工作文件(如排序、中间结果等)的成本。优化器在选择是否使用扫描...
**性能调优-AWR报表解读** Oracle 10g版本引入了一个重要的性能监控工具——Automatic Workload Repository(AWR),它是数据库管理员进行性能优化的重要参考。AWR通过定期捕获数据库的状态快照(snapshot),然后...
也是分两阶段,第一阶段从根节点开始标记所有被引用对象,第二阶段遍历整个堆,清除标记对象,并未标记对象并且把存活对象“压缩”到堆的其中一块,按顺序排放。 垃圾回收策略 常见的垃圾回收策略有: * 增量...