首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
一个Web报表项目的性能分析和优化实践(六):设置MySQL的最大连接数(max_connections)
】的更多相关文章
一个Web报表项目的性能分析和优化实践(四):MySQL建立索引,唯一索引和组合索引
先大致介绍下项目的数据库信息. 数据库A:主要存放的通用的表,如User.Project.Report等. 数据库B.C.D:一个项目对应一个数据库,而且这几个项目的表是完全一样的. 数据库表的特点 A中的表:数据量几乎都比较小,比如User表中用户数,顶多也就几百上千. B中的表:X/Y/Z 3张表几乎是确定的,Data表 中的数据量比较大,几千万到上亿. 周期性的会加入一大批数据,比如,每月末增加几百万条数据. 即一般情况下,B中的表只有查询操作,而且特别是Data查询频繁且数据量很大. 建…
一个Web报表项目的性能分析和优化实践(六):设置MySQL的最大连接数(max_connections)
在上一篇文章中"一个Web报表项目的性能分析和优化实践(二):MySQL数据库连接不够用(TooManyConnections)问题的一次分析和解决案例"提到,项目中新增几个数据库后,数据库最大连接数达到了默认的最大值100.此时,如果再创建连接,就会报错(TooManyConnections). 因此,需要手动设置MySQL的最大连接数(max_connections). 就是这么一个简单的事,花了几个小时,查询很多资料,请教好友同事"飞鸟",才搞定这个问题. 问…
一个Web报表项目的性能分析和优化实践(二):MySQL数据库连接不够用(TooManyConnections)问题的一次分析和解决案例
最近,项目中遇到了数据库连接不够的问题. 异常信息com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: "Too many connections" 根据更详细的错误信息,我定位到报错的函数位置. 关键函数 /** * 判断数据库是否存在 */ public…
一个Web报表项目的性能分析和优化实践(三) :提高Web应用服务器Tomcat的内存配置,并确认配置正确
摘要 上一篇,一个Web报表项目的性能分析和优化实践(一):小试牛刀,统一显示SQL语句执行时间 ,讲述了项目优化的整体背景,重点讲述了统一显示了Web项目SQL语句的执行时间. 本篇,将重点介绍提高Web应用服务器Tomcat的内存配置,并确认配置正确的方法. 背景 这个Web报表项目,用的Linux系统,Web应用服务器使用的是Tomcat7.0. 根据已有程序开发的经验,我认为手动分配和提高Tomcat的内存,能够降低Web请求响应时间,提高系统的性能. 手动提高Tomcat内存前后的响应…
一个Web报表项目的性能分析和优化实践(五):重构有助于性能优化么?
项目从初次开发到现在,已经快3年了.期间,有N个工程师参与过. 需求方面:增加减少,反反复复,无数次:人力方面:增加减少,不稳定:时间方面:功能开发着急上线,Bug开发紧急修复. 因此,代码臃肿,问题颇多. 自从毕业加入到项目,深感代码质量问题对项目开发效率的影响,因此经常会对项目进行"重构"和"优化". 主要经历了2次大的重构和无数次小的改进. 今天,特别整理下,希望今后可以做得更好. 重构事项 1.统一标准. 包.类.方法.字段等命名按照Java标准规范那样…
[置顶] 一个Web报表项目的性能分析和优化实践(一):小试牛刀,统一显示SQL语句执行时间
最近,在开发和优化一个报表型的Web项目,底层是Hibernate和MySQL. 当报表数据量大的时候,一个图表要花4秒以上的时间. 以下是我的分析和体会. 1.我首先需要知道哪些函数执行了多少时间,哪些sql花了多少时间. a.最笨最简单的方法是,每一个函数的调用开始和结尾都保存开始时间startTime和结束时间endTime, 进行计算. b.写一个“拦截器”,拦截每一个方法的执行,计算时间. 这个又太难了,没啥思路. c.想到Hibernate查询,真正执行sql语句的方…
一个Web报表项目的性能分析和优化实践(一):小试牛刀,统一显示SQL语句执行时间
最近,在开发和优化一个报表型的Web项目,底层是Hibernate和MySQL. 当报表数据量大的时候,一个图表要花4秒以上的时间. 以下是我的分析和体会. 1.我首先需要知道哪些函数执行了多少时间,哪些sql花了多少时间. a.最笨最简单的方法是,每一个函数的调用开始和结尾都保存开始时间startTime和结束时间endTime, 进行计算. b.写一个"拦截器",拦截每一个方法的执行,计算时间. 这个又太难了,没啥思路. c.想到Hibernate查询,真正执行sq…
一个Web报表项目的性能分析和优化实践(七):性能监测工具JavaMelody
简介 JavaMelody 能够监测Java或Java EE应用程序服务器,并以图表的方式显示:Java内存和Java CPU使用情况,用户Session数量,JDBC连接数,和http请求.sql请求.jsp页面与业务接口方法(EJB3.Spring. Guice)的执行数量,平均执行时间,错误百分比等. 图表可以按天,周,月,年或自定义时间段查看. 使用步骤 1.下载JavaMelody. 下载地址:http://code.google.com/p/javamelody/downloads/…
Reporting Service报表项默认可见+号和-号的显示问题
在Reporting Service里面可以设置报表项(组.tablix行.tablix列.文本框等所有SSRS报表项)的可见性,并且可以设置某个报表项的可见性由点击另外一个报表项来控制,比如报表项A的可见性设置为由报表项B来控制,那么报表项B内部就会出现一个+号或-号来表示报表项A当前是否可见,一般来说+号代表当前不可见而-号代表当前可见. 但是当设置报表项在报表最初运行时默认为可见的时候,你会发现默认情况下报表上显示的还是+号,但这个时候应该显示-号才对. 开始我以为这是SSRS的一个BUG…
携程App的网络性能优化实践
首先介绍一下携程App的网络服务架构.由于携程业务众多,开发资源导致无法全部使用Native来实现业务逻辑,因此有相当一部分频道基于Hybrid实现.网络通讯属于基础&业务框架层中基础设施的一部分,为App提供统一的网络服务: 1Native端的网络服务 Native模块是携程的核心业务模块(酒店.机票.火车票.攻略等),Native模块的网络服务主要通过TCP连接实现,而非常见的Restful HTTP API那种HTTP连接,只有少数轻量级服务使用HTTP接口作为补充. TCP连接网络服务模…