1.机器选型&系统规划
业务评估
业务需求
- 响应时间
- 数据总量
- 每秒请求量
- 读写比
- 重要程度
需求转化
- TPS
- IOPS
- CPU
- Memory
- IO
机型测试
- 性能对比测试
- 稳定性测试
- 掉电保护测试
- 内存异常测试
- IO设备坏盘和rebuild测试
成本评估
- 设备成本
- 运维成本
- 功耗成本
参考资料
1、《Why VividCortex Uses MySQL》
http://planet.mysql.com/entry/?id=684366
2、《SSD vs HDD: which is best?》
http://www.techradar.com/news/storage/computing-components/ssd-vs-hdd-which-is-best-936111
3、《SSD vs HDD》
http://www.storagereview.com/ssd_vs_hdd
4、《SSD vs HDD price and performance study》
http://www.dell.com/downloads/global/products/pvaul/en/ssd_vs_hdd_price_and_performance_study.pdf
5、《Fusion-io Introduction》
https://mariadb.com/kb/en/fusion-io-introduction/
文件系统规划
MySQL数据库特点
- 单数据目录
- 混合读写
- 请求随机
文件系统划分 - 系统分区
- 数据分区
- 日志分区
- IO调度
推荐分区配置
/dev/sda1 /boot
/dev/sda2 /
/dev/sda3 /home
/dev/sda4 /tmp
/dev/sdb1 /data
/dev/sdc1 /log
查看IO调度策略
#cat /sys/block/sdb/queue/scheduler
noop anticipatory deadline [cfq]
修改IO调度策略为deadline
# echo deadline > /sys/block/sdb/queue/scheduler
查看IO调度策略
#cat /sys/block/sdc/queue/scheduler
noop anticipatory deadline [cfq]
修改IO调度策略为deadline
# echo deadline > /sys/block/sdc/queue/scheduler
数据库系统规划
MySQL数据库顺序读写
- binlog日志
- error日志
- slow日志
- tmp目录
- 事务日志
- DoubleWrite数据
案例场景
- binlog日志文件、error日志文件、slow日志文件存储在/log日志目录中
- tmp文件指定为系统根目录/tmp
- 其他所有目录指定为数据目录/data
参考资料
1、《MySQL学习分享--机型选择与配置 》
http://blog.chinaunix.net/uid-26896862-id-3947862.html
2、《Inexpensive SSDs for Database Workloads》
http://www.mysqlperformanceblog.com/2013/10/03/inexpensive-ssds-database-workloads/
3、《Tuning I/O Performance》
http://doc.opensuse.org/products/draft/SLES/SLES-uning_sd_draft/cha.tuning.io.html
4、《Innodb Double Write》
http://www.mysqlperformanceblog.com/2006/08/04/innodb-double-write/
5、《XtraDB / InnoDB internals in drawing》
http://www.mysqlperformanceblog.com/2010/04/26/xtradb-innodb-internals-in-drawing/
6、《Configuration of the Doublewrite Buffer》
http://www.percona.com/doc/percona-server/5.5/performance/innodb_doublewrite_path.html?id=percona-server:features:percona_innodb_doublewrite_path
7、《ext4 vs xfs on SSD》
http://www.mysqlperformanceblog.com/2012/03/15/ext4-vs-xfs-on-ssd/