Chinaunix首页 | 论坛 | 博客
  • 博客访问: 350690
  • 博文数量: 166
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1640
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-05 11:44
个人简介

文章不在长,坚持不懈记录下努力前行的脚步

文章分类

全部博文(166)

文章存档

2017年(19)

2016年(59)

2015年(88)

我的朋友

分类: Mysql/postgreSQL

2015-07-06 16:55:54

内存分为:可控和不可控
一、mysql可以使用多少内存
1.物理内存限制
不能超过物理内存
2.操作系统限制
(1)进程限制
32位linux内核通常限制任意进程可以使用的内存量在2.5GB~2.7GB范围内
(2)堆栈大小
(3)glibc库支持单次分配的最大大小
二、每个连接需要的内存
保持连接只需要少量的内存--预留内存
最大允许100个连接、myisam_sort_buffer_size 256M,最差情况  25GB内存消耗--不可能存在
使用了许多大的临时表或复杂存储过程的查询,通常是导致高内存消耗最可能的原因。
top命令virt列的值反应使用内存情况
三、为操作系统预留内存--2GB或5%的较大者
四、为缓存分配内存
innodb缓冲池、innodb日志文件
五、innodb缓冲池--更需要内存
缓存索引、行数据、自适应哈希索引、插入缓冲、锁。
大缓冲池带来的挑战,预热和关闭都会花费很长时间,如果有很多脏页在缓冲池里,innodb关闭时可能会花费较长时间。
调小--innodb_max_dirty_pages_pct,等待脏页刷新后在关闭
innotop观察脏页刷新量
利用percona server的重新载入缓冲池来减少server的启动时间
六、myisam多个键缓存
key_buffer_1.key_buffer_size = 1G
key_buffer_2.key_buffer_size = 1G
用key_buffer_1来缓存t1,t2表的索引
cache index t1,t2 in key_buffer_1;
键缓存缓存索引文件,操作系统缓存缓存数据文件。
没有任何myisam表,也要将key_buffer_size设置为较小的值。
键缓存块大小太小造成写时读取的问题
线程缓存
表缓存






















阅读(670) | 评论(0) | 转发(0) |
0

上一篇:my.cnf配置文件

下一篇:配置mysql I/O行为

给主人留下些什么吧!~~