免费注册 查看新帖 |

Chinaunix

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

一个关于innodb_pool_buffer_size的奇怪问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-10-19 09:40 |只看该作者 |倒序浏览
为 mysql 分配越多的内存, cpu 的消耗也会相应增大 , 不计mysql读写时的cpu消耗

因为碰到过这样一个问题 , 我有一个库,大多为 innodb 的表 ,  查到看 innodb_pool_buffer_size 为默认的 8M , 此时负载比较正常
使用 show status like "innodb_buffer%"; 查看到下面两个参数的比值非常大
Innodb_buffer_pool_read_requests  
Innodb_buffer_pool_reads           

所以,我调大了 innodb_pool_buffer_size , 为1024M , 之后等其吃完分配的1G内存,并再次等待了很长时间,居然负载上来了,但 mysql 的读写挺正常 ,
且使用 top 查看 , 此 mysql 进程 占 cpu 维持在 40% 左右 ,除此之前其他进程占cpu 不多, 可以判定是这个 mysql 占用了 cpu , 且为 IOwait


这个我就纳闷了,为何如此啊,请教了

论坛徽章:
0
2 [报告]
发表于 2010-10-19 09:46 |只看该作者
有需要提供更多信息的,请回贴

论坛徽章:
0
3 [报告]
发表于 2010-10-19 11:08 |只看该作者
那你数据量是多大呢?

论坛徽章:
0
4 [报告]
发表于 2010-10-19 11:42 |只看该作者
回复 3# w_y_b


    45G  ,

论坛徽章:
0
5 [报告]
发表于 2010-10-19 12:08 |只看该作者
你的总内存多大呢?
我认为可以增加一下innodb_log_file的大小。

论坛徽章:
9
每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00数据库技术版块每周发帖之星
日期:2016-03-07 16:30:25
6 [报告]
发表于 2010-10-19 13:08 |只看该作者
show variables like 'innodb%';
show innodb status ;
的结果贴一下看看

论坛徽章:
0
7 [报告]
发表于 2010-10-19 13:17 |只看该作者
估计你是没调log的大小,默认为5M,既然调大了buffer_pool_size,导致频繁写redo log,IO估计卡在把redo log flush到磁盘上了

论坛徽章:
0
8 [报告]
发表于 2010-10-19 14:04 |只看该作者
本帖最后由 BangBull 于 2010-10-19 14:07 编辑

回复 5# w_y_b


        内存 8G 够用 ,  且也增加了 log 文件为 10M , buffer 为 10M
| innodb_log_buffer_size          | 10485760       |
| innodb_log_file_size            | 10485760

show status like "innodb_buffer%";
| Innodb_buffer_pool_pages_data     | 128970     |
| Innodb_buffer_pool_pages_dirty    | 798        |
| Innodb_buffer_pool_pages_flushed  | 83368      |
| Innodb_buffer_pool_pages_free     | 0          |
| Innodb_buffer_pool_pages_misc     | 2102       |
| Innodb_buffer_pool_pages_total    | 131072     |
| Innodb_buffer_pool_read_ahead_rnd | 389480     |
| Innodb_buffer_pool_read_ahead_seq | 57680      |
| Innodb_buffer_pool_read_requests  | 2256458774 |
| Innodb_buffer_pool_reads          |      25380866   |
| Innodb_buffer_pool_wait_free      | 0          |
| Innodb_buffer_pool_write_requests | 2906228

innodb_buffer_pool_size        2147483648    (2G)

mysql 读写非常好

两个物理cpu , 共四核    负载 维持在 10 - 20        load average: 15.03, 15.14, 14.81

论坛徽章:
0
9 [报告]
发表于 2010-10-19 14:27 |只看该作者
回复 1# BangBull


    日志文件太小了吧,导致日志轮换(或者LRU算法导致)时要清空日志文件

论坛徽章:
0
10 [报告]
发表于 2010-10-19 14:37 |只看该作者
本帖最后由 BangBull 于 2010-10-19 14:40 编辑

回复 9# mysqllog


    那设多大日志文件呢 , 设大了怕影响崩溃恢复时间
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP