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/