一、选PerconaServerMariaDBMYSQL

 

 

1Mysql  三种存储引擎

 

MySQL储引MyISAMInnoDBMySQL45 使MyISAM存储引擎。从MYSQL5.5开始MySQL将默MyISAM更改为InnoDBMyISAM没有提供事支持InnoDB 支持。

 

 

XtraDBInnoDB  擎的本,更好使计算系统的性能,同时还包含在高的新性。

2Percona    Server分支

PerconaServerMySQL公司Percona

PerconaServer款独全与MySQL  兼容,更改代码的情况了下将存更换成XtraDB接近MySQL Enterprise  行版

Percon 提供了高性能XtraD 引擎,还提供PX 高可用解决,并且附带

percona-toolkitDBA具箱,

 

3MariaDB

MariaDBMySQLMariaDB的目MySQL包括API和命令行,使之能轻松成为MySQL  替品。

MariaDB供了MySQL提供引擎MyISAMInnoDB10.0.9起使用

XtraDB(名称代号为Aria来代替MySQLInnoDB

 

4、如何选择

 

综合使用经能对Percona  MariaDB,如想冒一

点风险,那就选择MYSQL.



、    常用MYSQL调优策略

 

1、硬件层相关优化

 

 

修改服务器BIOS设置

l  选择PerformancePerWattOptimized(DAPC)发挥CPU最大能。

l  MemoryFrequency选择MaximumPerformance性能)

l  内存设置菜单中,NodeInterleaving避免NUMA  问题

 

 

2、磁I/O相关

 

 

 l 使用SSD硬盘

l     如果是磁盘阵列存议阵CACHEBBU显提升IOPS

l     raid级别尽量raid10,而不是raid5.

 

3、文件系统层优化

 

 

l 使用deadline/noopI/O别用cfq

l 使用xfsext3ext4业务要用xfs

l  文件mount增加noatime,nodiratime,nobarrier选项nobarrierxfs

文件系统特有的



注:修改io调度算法

[root@IO-0-1 ~]# cat /sys/block/sda/queue/scheduler

noop anticipatory deadline [cfq] ----括号中为当前使用的算法

修改IO调度算法

[root@IO-0-1 ~]# echo deadline > /sys/block/sda/queue/scheduler

[root@IO-0-1 ~]# cat /sys/block/sda/queue/scheduler

noop anticipatory [deadline] cfq  可以看到IO调度算法已经修改为deadline


mount参数添加noatime,nodiratime,nobarrier


# vi /etc/fstab

 /dev/sda1        /             xfs     defaults,noatime,nodiratime,nobarrier 0 0

devpts           /dev/pts      devpts   gid=5,mode=620             0 0

proc             /proc         proc     defaults                   0 0

/dev/sda2        swap          swap     defaults,noatime           0 0

修改设置后只需要重新挂载文件系统、不需要重启就可以应用新设置:

 

# mount -o remount /

 

或者直接挂载: mount -o noatime,nodiratime,nobarrier /dev/sdb1 /data



Centos 6安装xfs的方法:


安装xfs相关包,挂载xfs内核

 # yum install xfsprogs kmod-xfs xfsdump xfsprogs-devel

 # modprobe xfs

 # lsmod |grep xfs

xfs                  1124960  1
exportfs         4236  1 xfs




 

 

4、内核参数优化

 

 

l  修改vm.swappiness降低swap使率。RHEL7/centos7上则置为0,可能发生OOM

l  调整vm.dirty_background_ratiovm.dirty_ratio  参数持续据刷新到磁盘,避免瞬间I/O。产

l  调整net.ipv4.tcp_tw_recyclenet.ipv4.tcp_tw_reuse  设置为1减少TIME_WAIT,提

TCP效率。



修改swap使用概率??

表示使用swap的概率,此值越大,表示使用swap的概率越大。推荐配置如下:

查看目前配置:cat /proc/sys/vm/swappiness

添加如下内容到/etc/sysctl.conf

vm.swappiness=10

表示当内存使用率超过(100-10)90%时,才开始使用swap。

使配置文件生效

sysctl -p


net.ipv4.tcp_tw_recycle=1

net.ipv4.tcp_tw_reuse=1

也是在/etc/sysctl.conf文件中添加,并使之生效。




 

 

5Mysql  参数优化建议

 

 

l 建议设置default-storage-engine=InnoDB,强再使用MyISAM  擎。

l  调整innodb_buffer_pool_size是单多数是InnoDB的话,可考虑设置为物理存的50%-70%左右。


l 设置innodb_file_per_table=1,使用独立表空间。

l  调整innodb_data_file_path = ibdata1:1G:autoextend10M,在高发场景下,性能会有很大升。

l  设置innodb_log_file_size=256M,设置innodb_log_files_in_group=2基本足大多

数应用场景。

l  调整  max_connection最大max_connection_error(最根据业务量大小进行设

l  另外,open_files_limitinnodb_open_filestable_open_cache   table_definition_cache

可以设置大约为max_connection10小。

l  key_buffer_size议调32M左右可,querycache

l  mp_table_size  max_heap_table_siz 设置不要过大,另外sort_buffer_size

join_buffer_sizeread_buffer_sizeread_rnd_buffer_size    置也大。

 



、    MYSQL  常见的应用分享

 

 

1、主从复制解决

 

 

这是MySQL供的可用步方的是MySQLreplication技术MySQLreplication从服务器日志将日文件解析相应的SQL服务新执务器过这保证据的一致性。为了高的用性在实境中MySQLreplication技术配合高可用集群软件keepalived现自动failover式可实现95.000%SLA

 


MYSQL企业常见架构与调优_架构


 


 

 

2MMM/MHA  高可用解决方案

 

 

MMM提供了MySQL主主置的和管伸缩套件。MMM高可用型的双主通过MySQLreplication  术可实现两个互为且在候只可以点写突。同主节MMM    可以,然服务换到一个主节点,继续提供从而MySQL  用。

 

 MYSQL企业常见架构与调优_架构_02





3Heartbeat/SAN  高可用解决方案

 

 



在这failover方式Heartbeat监控各个节点间群服故障可用其他点启动集服务据共,通SANStorageAreaNetwork)存储来种方案可以实现99.990%SLA

 

 MYSQL企业常见架构与调优_mysql_03

 


 

 

 

 

4Heartbeat/DRBD 高可用解决方案

 

 此方处理failover  依旧Heartbeat的是在数方面采用了基于块级别的数据DRBD现。DRB软件的、镜像的存解决方案。和SAN  网络它并,而服务络复

 

MYSQL企业常见架构与调优_调优_04

 

 

 


 

 


 

四、MYSQL  经典应


MYSQL企业常见架构与调优_mysql_05

 

 

其中:

 

 Dbm157mysqldbm158mysql的备dbs159/160/161mysql从。MySQL操作heartbeat+DRBD+MySQL  建高群的方案heartbeat实现对mysql监测DRBDdbm157数据步到dbm158读操采用基于LVS+Keepalived搭建高扩案。前端AS 用通提高的读VIP连接LVSLVSkeepliaved成高式,备。mysql从节dbs159/160/161通过mysql功能同mysql数据,通过lvs给前端AS操作载均