免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3337 | 回复: 11
打印 上一主题 下一主题

mysql innodb问题,高手进 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-28 15:45 |只看该作者 |倒序浏览
windows  mysql5.1 ,innodb,目前data文件1.4G,其中有两张表比较大,一张1000万条,另外一张100万条记录
apache+2tomcat集群方式,刚启动的时候,迅速将连接池耗尽(400个),同时数据库文件缓慢的加载到内存中 ,大概1m/s
等到mysql占了大几百M内存的时候 ,重启apache和tomcat,则一切正常
不知道是什么原因造成的,遇到过的兄弟指点下

论坛徽章:
6
数据库技术版块每日发帖之星
日期:2015-10-11 06:20:00数据库技术版块每日发帖之星
日期:2015-10-12 06:20:00数据库技术版块每日发帖之星
日期:2015-10-15 06:20:00数据库技术版块每日发帖之星
日期:2015-10-30 06:20:00综合交流区版块每月发帖之星
日期:2015-12-02 14:59:01数据库技术版块每日发帖之星
日期:2015-12-15 06:20:00
2 [报告]
发表于 2011-03-30 13:41 |只看该作者
正常现象.

论坛徽章:
0
3 [报告]
发表于 2011-03-31 13:10 |只看该作者
但之前用mysql5.0的时候没有遇到过这样的问题

论坛徽章:
0
4 [报告]
发表于 2011-03-31 13:19 |只看该作者
另外贴个tomcat c3p0配置给大家看看  采用的apache+2tomcat集群方式   

<Resource name="jdbc/mysql" auth="Container" type="com.mchange.v2.c3p0.ComboPooledDataSource"
               maxPoolSize="25" minPoolSize="10" acquireIncrement="1"
               user="root" password="root" driverClass="com.mysql.jdbc.Driver"
               factory="org.apache.naming.factory.BeanFactory"
               preferredTestQuery="select 1"  checkoutTimeout="5000"   idleConnectionTestPeriod="60" maxIdleTime="60"
               jdbcUrl="jdbc:mysql://localhost:3306/hw?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=iso8859-1"/>

<Resource name="jdbc/shuyy" auth="Container" type="com.mchange.v2.c3p0.ComboPooledDataSource"
               maxPoolSize="10" minPoolSize="5" acquireIncrement="1"
               user="root" password="root" driverClass="com.mysql.jdbc.Driver"
               factory="org.apache.naming.factory.BeanFactory"
               preferredTestQuery="select 1"  checkoutTimeout="5000"  idleConnectionTestPeriod="60"  maxIdleTime="60"
               jdbcUrl="jdbc:mysql://localhost:3306/shuyy?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=iso8859-1"/>

<Resource name="jdbc/ledu" auth="Container" type="com.mchange.v2.c3p0.ComboPooledDataSource"
               maxPoolSize="10" minPoolSize="5" acquireIncrement="1"
               user="root" password="root" driverClass="com.mysql.jdbc.Driver"
               factory="org.apache.naming.factory.BeanFactory"
               preferredTestQuery="select 1"  checkoutTimeout="5000"  idleConnectionTestPeriod="60"  maxIdleTime="60"
               jdbcUrl="jdbc:mysql://localhost:3306/ledu?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=iso8859-1"/>

<Resource name="jdbc/mx" auth="Container" type="com.mchange.v2.c3p0.ComboPooledDataSource"
               maxPoolSize="25" minPoolSize="10" acquireIncrement="1"
               user="root" password="root" driverClass="com.mysql.jdbc.Driver"
               factory="org.apache.naming.factory.BeanFactory"
               preferredTestQuery="select 1"  checkoutTimeout="5000" idleConnectionTestPeriod="60"   maxIdleTime="60"
               jdbcUrl="jdbc:mysql://localhost:3306/mx?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=iso8859-1"/>

<Resource name="jdbc/kukan" auth="Container" type="com.mchange.v2.c3p0.ComboPooledDataSource"
               maxPoolSize="5" minPoolSize="2" acquireIncrement="1"
               user="root" password="root" driverClass="com.mysql.jdbc.Driver"
               factory="org.apache.naming.factory.BeanFactory"
               preferredTestQuery="select 1"  checkoutTimeout="5000"  idleConnectionTestPeriod="60" maxIdleTime="60"
               jdbcUrl="jdbc:mysql://localhost:3306/kukan?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=iso8859-1"/>






用show  processlist查看mysql进程 , 发现时常150个左右的sleep进程在那 ,而且不断的创建新的连接,  每秒大概10个左右,有些sleep的进程没有重新利用起来。
另外查看有些进程状态是  freeing  itmes, 而sql语句也就是个简单的更新操作,请问这是什么问题呢

论坛徽章:
0
5 [报告]
发表于 2011-03-31 13:20 |只看该作者
麻烦各位帮忙看看这个c3p0配置有无问题啊

论坛徽章:
0
6 [报告]
发表于 2011-03-31 13:23 |只看该作者
而且用show processlist看进程数 ,有时候会超过maxPoolSize设置的最大值,这是啥原因呢

论坛徽章:
0
7 [报告]
发表于 2011-03-31 14:46 |只看该作者
MARK一下

论坛徽章:
0
8 [报告]
发表于 2011-04-02 09:05 |只看该作者
问题基本解决   innodb buffer pool设置过大了

另外为何show processlist中的进程数大于连接池所设置的最大连接数呢?

论坛徽章:
6
数据库技术版块每日发帖之星
日期:2015-10-11 06:20:00数据库技术版块每日发帖之星
日期:2015-10-12 06:20:00数据库技术版块每日发帖之星
日期:2015-10-15 06:20:00数据库技术版块每日发帖之星
日期:2015-10-30 06:20:00综合交流区版块每月发帖之星
日期:2015-12-02 14:59:01数据库技术版块每日发帖之星
日期:2015-12-15 06:20:00
9 [报告]
发表于 2011-04-06 18:44 |只看该作者
由于你的数据量大,如果将innodb_buffer_pool_size设定过小的话,查询性能会大大降低.

论坛徽章:
0
10 [报告]
发表于 2011-04-07 16:21 |只看该作者
由于是win32系统  貌似mysql只能用到2g  
过大了容易造成溢出


另外想请教下
idleConnectionTestPeriod="60"  maxIdleTime="60"
这两个参数该怎么设置
如果idleConnectionTestPeriod的值小于maxIdleTime了  
那岂不是就不存在超过maxIdleTime所设时间的空闲链接了吗
那这个回收也就不起作用了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP