Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29956996
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: Mysql/postgreSQL

2010-03-20 15:12:24

高负载下MySQL优化

[摘自 金凯生2009-12-24

优化重点

1、  硬件优化

升级硬件

优化硬件驱动配置

2、  MySQL优化

配置优化

编译参数优化

部署方案优化

3、  系统及应用优化更有效

 

高负载判断

硬件相关

       服务器Load超过经验阀值(top)

       查看IO是否繁忙(iostat)

       查看服务器连接数是否超标(netstat)

数据库自身指标

       并发数(mysqladmin status)

       慢查询数

 

硬件之间的相互影响

 

状态

受影响硬件

原因

导致结果

磁盘I/O

使用率高

CPU

频繁读写

Load

CPU

使用率高

慢查询、跨表统计等

系统变慢、Load

内存

占用swap分区

CPU

大量的临时表空间占用

系统变慢load

网卡

一般不会出问题、因为网卡流量都满的话其他的早就无法支持了

 

服务器之磁盘相关

1、  磁盘IO读写压力

频繁的增、删、改操作

读写分离

调整磁盘子系统参数(提高读写频率)

        /proc/sys/vm/dirty_ratio

        /proc/sys/vm/dirty_backgroud_ratio

        /proc/sys/vm/dirty_writeback_centisecs

        /proc/sys/vm/dirty_expire_centisecs(5s---2s)

修改文件系统(ext3 - XFS

说明:文件系统是非常影响到磁盘IO的效率的!

 

 

 

服务器之内存、CPU

内存成为高负载原因

       内存耗尽

                     Mysql占用了swap分区

                     服务器其他程序占用内存

CPU成为高负载原因

       慢查询

       频繁的锁表操作

 

 

MySQL配置优化之连接数

连接数过多处理办法

       提高mysql连接数阀值

       降低前台与DB的连接次数

       减少慢查询、提高响应时间

       减少或合并锁表操作,提高响应时间

       分表分库

       分服务器

       主从结构、集群

 

MySQL 配置优化

1、中心工作调节各种类型缓存大小

2、缓存过小、会降低命中。这样直接操作表了影响性能

3、缓存过多,增加内存开销

4、缓存类型

       读、写、索引、查询、排序、临时表、关键字等

 

结束

应用级优化才是王道

1、通过优化select语句

2、调整业务策略较少连接数

3、分解慢查询,提高执行效率

 

阅读(807) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~