最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

MysqlTomcatC3p0系统性能调优个人总结_MySQL

来源:懂视网 责编:小采 时间:2020-11-09 19:47:51
文档

MysqlTomcatC3p0系统性能调优个人总结_MySQL

MysqlTomcatC3p0系统性能调优个人总结_MySQL:系统信息 应用逻辑 就是用c3p0 到数据库查询数据并http返回Json数据 1 调优前的最初的测试结果 JMeter test result No. Type Original 1000 data bigger 1 500Connection 250 query/S 63q/
推荐度:
导读MysqlTomcatC3p0系统性能调优个人总结_MySQL:系统信息 应用逻辑 就是用c3p0 到数据库查询数据并http返回Json数据 1 调优前的最初的测试结果 JMeter test result No. Type Original 1000 data bigger 1 500Connection 250 query/S 63q/

系统信息

应用逻辑 就是用c3p0 到数据库查询数据并http返回Json数据

1 调优前的最初的测试结果 JMeter test result

No.

Type

Original

1000 data bigger

1

500Connection

250 query/S

63q/S
70q/S

2

1000 connections

255q/S

57q/S

65 q/S

这个数据是从程序的log 中打印出的 数据库select语句 中得出的结果(正确与否后面会有讨论)。

2 经过IOD系统打印 SQL query 的执行时间 和 tomcat 每个request 的 响应时间,找出 系统瓶颈 是因为一个 select语句 使用了 in:

SELECT* FROM infoobject_table where category = 'advertisement' and deleteflag=falseand (id in (select info_object_fk from timespan_table where vod_id = ? and deleteflag=false))Order By Rand() Limit

在 原来的小数据库中 数据较少 查询 时间 100ms 左右

在 1000个 video 的数据库中 查询的时间 达到 超过 1S

先注释掉 这个语句 ,想办法用优化的办法实现这个功能。

注释掉 这个 select 语句后得到的测试数据(还是计算从程序的log中打印出的 数据库select语句)Jmeter testresult

No.

Type

Original

1000 bigger

1

500Connection

250 query/S

CPU 100%
150q/S

2

1000 connections

255q/S

160q/S

160q/S

现在 的问题 是碰到 tomcat request 160q/S 再怎么调优 增加不了了,tomcat的内存 配置了4G 实际使用了不到 1个G ,CPU 8核心 利用率 只有10%。

3 发现前面的统计系统响应 性能有问题,很多时候sql 语句打印出来了,但是并没有执行完成, 因为c3p0 连接数只有15个,都在等待数据库连接,后来改变统计方式。

还有就是打印出 c3p0 的连接池的工作状态

private void printDataConnections() {
 ComboPooledDataSource ds = (ComboPooledDataSource) DBConn.getDataSource();
 StringBuffer connectionBuffer = new StringBuffer();
 try {
 connectionBuffer.append("getMaxPoolSize=" + ds.getMaxPoolSize());// 最大连接数
 connectionBuffer.append("getMinPoolSize=" + ds.getMinPoolSize());// 最小连接数
 connectionBuffer.append("getNumBusyConnections=" + ds.getNumBusyConnections());// // 正在使用连接数
 connectionBuffer.append("getNumIdleConnections=" + ds.getNumIdleConnections());// 空闲连接数
 connectionBuffer.append("getNumConnections=" + ds.getNumConnections());//总连接数
 logger.info(" connectionBuffer=" + connectionBuffer.toString()); 
 } catch (SQLException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }


 }


后来进行mysql(默认100最大链接), tomcat(连接数default)tomcat 内存配置, c3p0(最大15个链接) 链接池优化。

Mysql: 在system/programdata/mysql/my.ini中配置

max_connections=1000

Tomcat: 配置连接数



配置 tomcat 运行jvm 配置

set JAVA_OPTS=-server -Xms4400M-Xmx4400M -Xss512k -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:PermSize=128M-XX:MaxPermSize=256M -XX:+DisableExplicitGC -XX:MaxTenuringThreshold=31-XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection-XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly-Djava.awt.headless=true

应用 c3p0 连接池配置:

 
  
  
 
 
 
 
 
 
  
  
 SELECT 1 
 25000 
 true 
 root 
 iptv4Um8 
  
  


查询配置了mysql 最大连接数 1000, 配置 c3p0 连接池 800 配置 tomcat 链接 800 测试结果:

CPU 8Core 12% usage

Memmory900M/2.4G 120q/S

这个时候碰到的问题就是 cpu 和 内存 都没有达到上限,但是查询的 性能却提升不上去了。

5 试用jconsole 查看tomcat 中的 线程状态,好多线程都是 blocked on java.util.logging.console 原来是线程一直在等待写日志被block住了。

把写log的语句 全部注释掉。OK 系统终于飞起来了。

现在 能达到 250q/S。

需要检查的地方:

CPU

内存

mysql最大连接数

tomcat 连接数配置

tomcat JVM 配置 重要的是内存大小

数据库连接池配置:

程序内部的瓶颈。

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

MysqlTomcatC3p0系统性能调优个人总结_MySQL

MysqlTomcatC3p0系统性能调优个人总结_MySQL:系统信息 应用逻辑 就是用c3p0 到数据库查询数据并http返回Json数据 1 调优前的最初的测试结果 JMeter test result No. Type Original 1000 data bigger 1 500Connection 250 query/S 63q/
推荐度:
标签: 个人 系统 mysql
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top