磁盘 I/O 优化

RAID (Redundant Array of Inexpensive Disks)就是 “廉价磁盘冗余阵列”。就是磁盘阵列。
RAID 就是按照一定策略将数据分布到若干物理磁盘上,这样不仅增强了数据存储的可靠性,而且可以提高数据读写的整体性能,因为通过分布实现了数据的 “并行” 读写



如何选取 RAID 级别:
数据读写都很频繁,可靠性要求也很高,最好选择 RAID 10;
数据读很频繁,写相对较少,对可靠性有一定要求,可以选择 RAID 5;
数据读写都很频繁,但可靠性要求不高,可以选择 RAID 0;

使用 Linux 软RAID 实现 RAID 特性。比如: lvm2, md 驱动

使用 Symbolic Links 分布 I/O
1)将一个数据库指向其他物理磁盘
mkdir /data01/test/
ln -s /data01/test/ /path/to/datadir

2)将 MyISAM (其他存储引擎的表不支持)表的数据文件或索引文件指向其他物理磁盘
1.对于新建的表,可以通过在 create table 语句中增加 data directory 和 index directory 选项来完成


2.对于已有的表,可以先将其数据文件(.MYD)或索引文件 (.MYI)转移到目标磁盘,然后再建立符号连接即可。需要说明的是表定义文件(.frm)必须位于 Mysql 数据文件目录下,不能用符号连接
3.在 windows 下使用符号连接
假设 mysql 数据文件 目录是 C:\mysql\data, 要把数据库 foo 存放到 D:\data\foo
创建 目录 D:\data\foo;
创建文件 C:\mysql\data\foo.sym ,在其中输入 D:\data\foo
这样数据库 foo 创建的表都会存储到 D:\data\foo 目录下

禁止操作系统更新文件的 atime 属性
访问 数据文件每次都写入 atime 时间,会对磁盘 I/O 造成负担,因此要禁止操作系统更新文件的 atime 属性
修改 文件系统配置文件 /etc/fstab 指定 noatime 选项:
LABEL=/home               /home               ext3          noatime          1     2
然后重新 mount 文件系统
mount -o remount /home

用 裸设备 (Raw Device)存放 Innodb 的共享表空间
1)修改 mysql 配置文件,在 innodb_data_file_path 参数中增加裸设备文件名并指定 newraw 属性:
[mysqld]
innodb_data_home_dir=
innodb_data_file_path=/dev/hdd1:3Gnewraw;/dev/hdd2:2Gnewraw
2)启动 mysql ,使其完成分区初始化工作,然后关闭 mysql ,此时还不能创建或修改innodb 表。
3)将  innodb_data_file_path 中的 newraw 改成 raw:
[mysqld]
innodb_data_home_dir=
innodb_data_file_path=/dev/hdd1:3Graw;/dev/hdd2:2Graw
4)重新启动即可开始使用


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值