日期:2014-05-16  浏览次数:20451 次

Mysql数据库服务器性能配置优化一 -- 硬件配置及优化,RAID优化

? ??近期公司采购了新的DB服务器,结合以前的一些经验再研究了一下Mysql的各种优化点,从硬件选择到Raid,从更换InnoDB引擎再到my.cnf。大部分的优化点国内没有什么文章提及(www.mysqlperformanceblog.com?里很多有价值的信息,对于喜欢研究Mysql的朋友再强烈推荐一把)。这里把一些关键点和优化过程写下来,有需要的朋友可以参考一下。(转贴请注明出处)

?

1、硬件选择:

?

DELL R710,E5620 @2.40GHz(4 core?* 2?24G RAMIntel X25-M G2 34nm?SSD * 4 (RAID 10)

?

数据库对服务器的CPU,内存,IO都有比较高的要求。CPU就不用多说了,主流的4核×2。内存如果有条件尽量大一些,现在也不太贵(有测试表明在某种应用情况下,innodb_buffer_pool_size设置到一定大小时,无论是FusionIO,普通SSD还是SAS硬盘的TPS都差不多了,后面的文章会提到)。

?

IO方面,最开始我是准备用传统的4SAS 15K 146GRAID10的,常见的一种选择,比较保险,性能也还不错。后来看了不少SSD相关的文章(感谢cyberty的帮助),性能诱惑确实太大了。于是开始选择SSDFusionIO性能非常强悍,不过价格也强悍,160GB的大概4800美刀。Intel?有企业版的X25-E,采用SLC结构,还是偏贵了一些,性价比不高,另外容量较小。最后选择了Intel X25-M 80G4块做RAID10?能使用160GX25-MMTBF(Mean Time Between Failure,即平均无故障时间)达到120万小时,不过MLC颗粒的擦写理论寿命1万次,为了保险起见使用RAID10,另外会部署一台使用SAS硬盘的slave DB同步数据做备份,就算用SSD这台出问题也可以很快恢复服务。

?

Intel?X25-M相关文章:

?

http://bbs.ttpod.com/viewthread.php?tid=44144

?

http://diybbs.zol.com.cn/1/16_107911.html

?

http://www.beareyes.com.cn/2/lib/200908/31/20090831254_0.htm

?

?

2SSD需要的特殊处理:

?

如果是单块SSD,由于SSD的特殊性,即在写数据之前需要把用到的区域擦除然后再进行写操作。如果文件系统写操作能对齐SSDBLOCK SIZE,性能会更好,可以使用fdisk对扇区做一些处理。

?

参考文章:http://www.nuclex.org/blog/personal/80-aligning-an-ssd-on-linux

?

由于我这里做了RAID 10,所以情况有一点不一样,是否同样需要对BLOCK SIZE进行操作还没有完全搞清楚,目前没有修改。有研究的哥们儿还请不吝赐教。

?

在分区时留下了一些连续空间?不使用(10%到20%),Intel控制器会自动将这些空间用作空余空间替换使用,以保持性能延长寿命。综合考虑了一下,我剩余了