前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux系统中MySQL优化小技巧

Linux系统中MySQL优化小技巧

原创
作者头像
用户4988085
修改2021-07-28 17:48:13
9670
修改2021-07-28 17:48:13
举报
文章被收录于专栏:建站知识建站知识

本篇文章为大家分享一下Linux系统中MySQL优化小技巧,本文实操记录绝无水文,如果错误或遗漏欢迎各位小伙伴指正。

Linux系统中MySQL优化小技巧
Linux系统中MySQL优化小技巧

1.禁止操作系统更新文件的atime属性

atime是Linux/UNIX系统下的一个文件属性,每当读取文件时,操作系统都会将读操作时间回写到磁盘上。对于读写频繁的数据库文件来说,记录文件的访问时间一般没有任何用处,却会增加磁盘系统的负担,影响I/O性能!因此,可以通过设置文件系统的mount熟悉,阻止操作系统写atime信息,减轻磁盘I/O负担。方法如下:

(1)修改文件系统配置文件/etc/fstab,指定noatime选项:

代码语言:javascript
复制
?UUID=33958004-e8a7-4135-844f-707a5537e86a?/data???????????????????ext4??noatime?????0????1

(2)重新mount文件系统使其修改生效:

代码语言:javascript
复制
?[root@MySQL-01?~]#?mount?-o?remount?/data

2.调整I/O调度算法

详细说明请参考前面文章提到的I/O调度算法的选择

(1)查看当前系统支持的I/O调度算法:

代码语言:javascript
复制
?[root@MySQL-01 ~]# dmesg | grep -i scheduler
?io scheduler noop registered
?io scheduler anticipatory registered
?io scheduler deadline registered
?io scheduler cfq registered (default)
?[root@MySQL-01 ~]#

(2)查看当前设备(/dev/sda)使用的I/O调度算法:

代码语言:javascript
复制
?[root@MySQL-01 ~]# cat /sys/block/sda/queue/scheduler ? ?
?noop anticipatory deadline [cfq]
?[root@MySQL-01 ~]#

(3)修改当前设备使用的I/O调度算法,普通磁盘可以选择Deadline,SSD我们可以选择使用NOOP或者Deadline

代码语言:javascript
复制
?[root@MySQL-01 ~]# echo "deadline" >> /sys/block/sda/queue/scheduler
?[root@MySQL-01 ~]# cat /sys/block/sda/queue/scheduler ? ? ? ? ? ? ? ?
?noop anticipatory [deadline] cfq
?[root@MySQL-01 ~]#

永久修改I/O调度算法,可以通过修改内核引导参数,增加elevator=调度算法名

代码语言:javascript
复制
?[root@MySQL-01?~]#?vim?/boot/grub/menu.lst

更改后的内容:

代码语言:javascript
复制
?[root@MySQL-01 ~]# grep "deadline" /boot/grub/menu.lst ? ? ?
??? ? ? ?kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=UUID=c0618639-a967-4601-bca7-cc3b99c5c332 elevator=deadline rd_NO_LUKS rd_NO_LVM.UTF-8 rd_NO_MD quiet SYSFONT=latarcyrheb-sun16 rhgb crashkernel=auto ?KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM
?[root@MySQL-01 ~]#

3.NUMA架构优化

从系统架构来看,目前的商用服务器大体可以分为三类:

(1)对称多处理器架构(Symmetric Multi-Processor,SMP)

(2)非一致存储访问架构(Non-Uniform Memory Access,NUMA)

(3)海量并行处理架构(Massive Parallel Processing,MPP)

一般服务器是SMP或者NUMA架构的较多。我这里只详细说明NUMA架构,至于其他的童鞋们可以自行查阅资料_

NUMA把一台计算机分成多个节点(Node),每个节点内部拥有多个CPU,节点内部使用共有的内存控制器,节点之间是通过互联模块进行连接和信息交互,因此节点的所有内存对于本节点所有的CPU是等同的,而对于其他节点中的所有CPU都是不同的。因此每个CPU可以访问整个系统内存,但是访问本地节点的内存速度最快(不需要经过互联模块),访问非本地节点的内存速度较慢(需要经过互联模块),即CPU访问内存的速度与节点的距离有关,距离称为Node Distance。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com