机械硬盘 mysql调优_MySQL磁盘IO设置问题

本文介绍了针对MySQL在机械硬盘环境下的调优方法,包括使用SSD或RAID10提高性能,调整RAID卡设置以优化随机IO,禁止操作系统更新文件的atime属性,使用裸设备存放InnoDB表空间,关注BBWC问题,调整磁盘IO调度算法至Deadline,以及在NUMA架构下优化内存分配策略。通过对这些参数的调整,可以显著提升MySQL在机械硬盘环境下的性能。
摘要由CSDN通过智能技术生成

下面的部分内容来自《深入浅出MySQL》、老叶的视频、网上其他人的blog。

这里列出的是MySQL的一些非运行参数的优化部分,具体如下:

(对于使用云主机的用户,下文中的部分优化方法是无法奏效的)

0、使用SSD。资金不足的话,使用RAID设备 【建议使用RAID10,因为RAID5的性能并不太高】

可以SSD+SAS混合使用。SSD存放数据文件。mysql的日志文件还是存在普通机械磁盘上,因为这些日志本来就是顺序IO的,存在SSD上浪费磁盘。

1、RAID卡设置

关闭读cache:RAID卡上的cache容量有限,我们选择direct方式读取数据,从而忽略读cache。

关闭预读:RAID卡的预读功能对于随机IO几乎没有任何提升,所以将预读功能关闭。

关闭磁盘cache:一般情况下,如果使用RAID,系统会默认关闭磁盘的cache,也可以用命令强制关闭。

以上设置都可以通过RAID卡的命令行来完成,比如LSI芯片的RAID卡使用megacli命令。

2、禁止操作系统更新文件的atime属性

# vim /etc/fstab,将mysql数据文件存放的分区加上noatime挂载属性即可,类似如下:

UUID=ccbb4c85-32ff-4b8d-ae58-f39569b67d96 /data   ext4  defaults,noatime  1 2

# mount -o remount,noatime /data

# 查看设备UUID的命令: blkid /dev/sdb1

3、使用裸设备存放InnoDB的共享表空间 (目前很少这么用了,直接用SSD)

vim my.cnf如下:

[mysqld]

innodb_data_home_dir=

innodb_data_file_path=/dev/hdd1:3Gnewraw;/dev/hdd2:2Gnewraw

然后启动MySQL服务,让其自动完成分区的初始化,然后关闭MySQL。此时还不能创建或修改InnoDB表。

将my.cnf的文件继续修改下:

[mysqld]

innodb_data_home_dir=

innodb_data_file_path=/dev/hdd1:3Graw;/dev/hdd2:2Graw

然后重启MySQL服务,即可使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值