博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MYSQL企业常见架构与调优
阅读量:6630 次
发布时间:2019-06-25

本文共 4340 字,大约阅读时间需要 14 分钟。

 一、选PerconSMaraMYSQL

 

 

1Mysq 三种存储引擎

 

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

 

 

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

2Percona    Server分支

PerconaServerMySQL公司Percona

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

Percona   提供了高性能XtraDB   引擎,还提供PXC   高可用解决,并且附带

percona-toolkitDBA具箱,

 

3MariaDB

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

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

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

 

4、如何选择

 

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

点风险,那就选择MYSQL官.

、    常用MYSQL调优策略

 

1、硬件层相关优化

 

 

修改服务器BIOS设置

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

l  MemoryFrequency选择MaximumPerformance性能)

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

 

 

2、磁/相关

 

 

 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_rati 参数持续据刷新到磁盘,避免瞬间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文件中添加,并使之生效。


 

 

5Mysq 参数优化建议

 

 

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

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_size   设置不要过大,另外sort_buffer_size

join_buffer_sizeread_buffer_sizeread_rnd_buffer_size    置也大。

 



、    MYSQ 常见的应用分享

 

 

1、主从复制解决

 

 

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

 

 

 

 

2MMM/MHA  高可用解决方案

 

 

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

 

 



3e高可用解决方案

 

 



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

 

 

 

 

 

 

 

4e高可用解决方案

 

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

 

 

 

 

 

 

 

四、MYSQ 经典应


 

 

其中:

 

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

 

 

 本文转自pizibaidu 51CTO博客,原文链接:http://blog.51cto.com/pizibaidu/1785226,如需转载请自行联系原作者

你可能感兴趣的文章
jq 点击按钮换图运动
查看>>
体验JAVA 11新特性
查看>>
js 中编码(encode)和解码(decode)的三种方法
查看>>
C#文件拖到TextBox中获取文件显示文件路径
查看>>
Java中普通代码块,构造代码块,静态代码块区别及代码示例
查看>>
<%@ page import=""%>的用法
查看>>
myeclipse2014下卸载,安装maven插件。
查看>>
jq获取路径参数的方法
查看>>
使用sql追踪
查看>>
Ubuntu 最好用的CHM阅读器KchmViewer
查看>>
使用默认参数的构造函数 .
查看>>
NTFS u盘支持 - centos6
查看>>
洛谷P4206 [NOI2005]聪聪与可可(期望dp+最短路)
查看>>
如何在SqlServer中获取前端连接的IP地址,计算机名等信息
查看>>
程序员如何面试才能拿到offer
查看>>
MySql练习+加源代码
查看>>
detached HEAD state
查看>>
H5 canvas建造敌人坦克
查看>>
SparseArray
查看>>
cocos2dx 3.9 创建自定义mesh进行渲染。
查看>>