MySQL基础建设之硬盘篇
随着业务的不断增长,之前的环境越来越乱,由此欲重建整个MySQL数据库基础环境
主要目的是要考虑 数据冗余、性能、平衡 目的是让机器的性能最大的发挥,同时比较好维护
一、硬件选型
1.节点统计
目前已将各库进行分隔,但由于每台机器都过老过保,业务稳定但是硬件问题多多,出于节约成本,将机器数合并至两台数据库上
2.数据量统计
出于规划硬盘空间,需将每台机器所占用的data数据、binlog、slow log 及近期备份的日志文件总和一一列出,如下所示
某机房
功能业务
data空间使用情况
slow log空间使用情况
bin_log目录使用情况
某同步系统|主库
192G
4.9G
3.2G
某同步系统|从库
281G
43M
3.2G
某api服务|主库
6.2G
300M
3G
某api服务|从库
6.6G
13M
3G
综合业务服务|主库
2.9G
2M
4.8G
综合业务服务|从库
1.4G
92M
3.2G
账号服务 | 主库
4.7G
207M
44G
账号服务 | 从库
43G
(*_center 文件占用空间过多)
1M
58M
积分服务 | 主库
1.5G
200M
11G
积分服务 | 从库
2.2G
20M
11G
游戏 | 主库
1.4G
1.8G
753M
游戏 | 从库
1.4G
115M
776M
微博业务 | 主库
2.0G
2.5G
674M
微博业务 | 从库
5.5G
(ibdata2占略大)
8G
661M
3.硬件选型
总结以上对容量进行相加,可以算出单台机器600G容量就足够,但是考虑到以后几年的扩容情况,这里使用2T的空间,稍后会介绍到
最终,服务器选择了DELL R420;硬盘选择了Crucial M550 ,具体可以看其参数,价格就不要关注了:
本文来自 http://yijiu.blog.51cto.com 盗贴 可耻
M550官方说明 http://www.edgememory.com/ssds.aspx
据说理论上iops能达到7w+ 那么下面就来试试
二、一个坑:压力测试
1.压测工具选择
这里使用的是Fio,也可以是其他压测工具,因个人喜好而异
系统做好了,分别做了两个不同的RAID级别,一个是RAID1 一个是RAID0
在网上搜索了一通,看别人都这么做的,所以这里也跟着学了直接复制,可是网上的文章坑很多
不要模仿,之前就是直接复制
顺序写:
fio -name iops -rw=write -bs=4k -runtime=60 -iodepth 32 -filename /dev/sdb1 -ioengine libaio -direct=1
随机写:
fio -name iops -rw=randwrite -bs=4k -runtime=60 -iodepth 32 -filename /dev/sda1 -ioengine libaio -direct=1
随机读:
fio -name iops -rw=randread -bs=4k -runtime=60 -iodepth 32 -filename /dev/sda1 -ioengine libaio -direct=1
本文来自 http://yi jiu.bl og.51ct o.com 盗 贴 可耻
那么用fio来进行RAID0的压测,使用随机写的方式得出结果:
[root@localhost io_test]# fio -filename=/io_test/test -iodepth=64 -ioengine=libaio -direct=1 -rw=randwr