Mysql数据库服务器性能配置优化.docx
- 文档编号:1313951
- 上传时间:2022-10-20
- 格式:DOCX
- 页数:19
- 大小:22.84KB
Mysql数据库服务器性能配置优化.docx
《Mysql数据库服务器性能配置优化.docx》由会员分享,可在线阅读,更多相关《Mysql数据库服务器性能配置优化.docx(19页珍藏版)》请在冰豆网上搜索。
Mysql数据库服务器性能配置优化
Mysql数据库服务器性能配置优化
硬件配置及优化,RAID优化
近期公司采购了新的DB服务器,结合以前的一些经验再研究了一下Mysql的各种优化点,从硬件选择到Raid,从更换InnoDB引擎再到。
大部分的优化点国内没有什么文章提及( 里很多有价值的信息,对于喜欢研究Mysql的朋友再强烈推荐一把)。
这里把一些关键点和优化过程写下来,有需要的朋友可以参考一下。
(转贴请注明出处)
1、硬件选择:
DELLR710,E5620@2.40GHz(4core) *2 ,24GRAM,IntelX25-MG234nm SSD*4(RAID10)
数据库对服务器的CPU,内存,IO都有比较高的要求。
CPU就不用多说了,主流的4核×2。
内存如果有条件尽量大一些,现在也不太贵(有测试表明在某种应用情况下,innodb_buffer_pool_size设置到一定大小时,无论是FusionIO,普通SSD还是SAS硬盘的TPS都差不多了,后面的文章会提到)。
IO方面,最开始我是准备用传统的4块SAS15K146G做RAID10的,常见的一种选择,比较保险,性能也还不错。
后来看了不少SSD相关的文章(感谢cyberty的帮助),性能诱惑确实太大了。
于是开始选择SSD,FusionIO性能非常强悍,不过价格也强悍,160GB的大概4800美刀。
Intel 有企业版的X25-E,采用SLC结构,还是偏贵了一些,性价比不高,另外容量较小。
最后选择了IntelX25-M80G,4块做RAID10 能使用160G。
X25-M的MTBF(MeanTimeBetweenFailure,即平均无故障时间)达到120万小时,不过MLC颗粒的擦写理论寿命1万次,为了保险起见使用RAID10,另外会部署一台使用SAS硬盘的slaveDB同步数据做备份,就算用SSD这台出问题也可以很快恢复服务。
Intel X25-M相关文章:
2、SSD需要的特殊处理:
如果是单块SSD,由于SSD的特殊性,即在写数据之前需要把用到的区域擦除然后再进行写操作。
如果文件系统写操作能对齐SSD的BLOCKSIZE,性能会更好,可以使用fdisk对扇区做一些处理。
参考文章:
由于我这里做了RAID10,所以情况有一点不一样,是否同样需要对BLOCKSIZE进行操作还没有完全搞清楚,目前没有修改。
有研究的哥们儿还请不吝赐教。
在分区时留下了一些连续空间 不使用(10%到20%),Intel控制器会自动将这些空间用作空余空间替换使用,以保持性能延长寿命。
综合考虑了一下,我剩余了15G左右。
参考文章:
如果做了RAID,可以考虑使用128KB的stripsize(由于没找到远程改stripesize的方法,没有具体测试,有机会还需要专门测试一下)
参考文章:
3、DELL服务器查看RAID信息,硬件RAID优化:
需要在Linux下查看RAID的状态,DELL的RAID查看工具不支持Debian。
查了一些资料,说可以安装DELL的openmanage。
debian下的安装:
不过这些感觉还是相对麻烦。
后来找到一个简单的方法,首先用 lspci 命令查看一下,如果有类似
03:
00.0RAIDbuscontroller:
LSILogic/SymbiosLogicMegaRAIDSAS1078(rev04)
这样的就可以用。
下载MegaCli
使用alien命令转换成tgz
alien--to-tgz
解压tgz,就直接可以使用MegaCli64了(有可能需要chmod+x MegaCli64)。
有可能需要:
apt-getinstalllibsysfs-dev
./opt/MegaRAID/MegaCli/MegaCli64-LDInfo-Lall-aALL
OnethingIspentawhilefiguringoutwashowtogettherebuildprogress,sohere'show:
#./opt/MegaRAID/MegaCli/MegaCli64-PDRbld-ShowProg-PhysDrv\[32:
1\]-aALL
参考文章:
There'salsoareally usefulcheatsheetforcommontasks
以下是这台DB服务器用MegaCli64打出来的RAID信息:
db2:
~#/opt/MegaRAID/MegaCli/MegaCli64-LDInfo-Lall-aAll
Adapter0--VirtualDriveInformation:
VirtualDrive:
0(TargetId:
0)
Name :
RAIDLevel :
Primary-0,Secondary-0,RAIDLevelQualifier-0
Size :
136.125GB
State :
Optimal
StripeSize :
64KB
NumberOfDrives :
1
SpanDepth :
1
DefaultCachePolicy:
WriteBack,ReadAheadNone,Direct,NoWriteCacheifBadBBU
CurrentCachePolicy:
WriteBack,ReadAheadNone,Direct,NoWriteCacheifBadBBU
AccessPolicy :
Read/Write
DiskCachePolicy :
Disk'sDefault
EncryptionType :
None
VirtualDrive:
1(TargetId:
1)
Name :
RAIDLevel :
Primary-1,Secondary-3,RAIDLevelQualifier-0
Size :
148.0GB
State :
Optimal
StripeSize :
64KB
NumberOfDrivesperspan:
2
SpanDepth :
2
DefaultCachePolicy:
WriteBack,ReadAheadNone,Direct,NoWriteCacheifBadBBU
CurrentCachePolicy:
WriteBack,ReadAheadNone,Direct,NoWriteCacheifBadBBU
AccessPolicy :
Read/Write
DiskCachePolicy :
Disk'sDefault
EncryptionType :
None
下面开始RAID的优化,对具体的设置项不清楚的朋友可以单独Google一下。
TPMC数据是通过TPCC工具测试出来的。
TPCC是perconatools的一部分,大牛VadimTkachenko 所出,他在很多文章中使用该工具来进行对比测试。
在接下来第二篇优化文章中会具体提到这个工具。
工具地址:
设置读取缓存:
/opt/MegaRAID/MegaCli/MegaCli64-LDSetProp-Cached-LAll-aAll
恢复:
/opt/MegaRAID/MegaCli/MegaCli64-LDSetProp-Direct-LAll-aAll
设置前Direct(XFS,cfq)
21219.334TpmC
设置后Cached
23286.666TpmC(9.7%up)
设置前Direct(XFS,deadline)
22424.334TpmC
设置后Cached
23761.000TpmC (5.9%up)
都有不少提高,cfq下有9.7%的提升,deadline也有5.9%。
设置硬盘缓存(DiskCache):
打开:
/opt/MegaRAID/MegaCli/MegaCli64-LDSetPropEnDskCache-LAll-aAll
关闭:
/opt/MegaRAID/MegaCli/MegaCli64-LDSetPropDisDskCache-LAll-aAll
默认是Disk'sDefault,在这里估计已经是打开的了,测试一下。
设置前(XFS,deadline)
23761.000TpmC
enable
23997.334TpmC
disable
22853.000TpmC
设置读取策略(ReadAhead):
打开:
/opt/MegaRAID/MegaCli/MegaCli64-LDSetPropADRA-LALL-aALL
设置前ReadAheadNone(XFS,deadline)
23997.000TpmC
ReadAdaptive
24753.334TpmC
设置写缓存(writecache),一定要注意,写缓存可能导致数据丢失,有电池包(BBU)的情况下可以开启:
打开:
/opt/MegaRAID/MegaCli/MegaCli64-LDSetPropWB -LALL-aALL
关闭:
/opt/MegaRAID/MegaCli/MegaCli64-LDSetPropWT-LALL-aALL
如果电池包有问题关闭WB:
/opt/MegaRAID/MegaCli/MegaCli64 -LDSetPropNoCachedBadBBU-LALL-aALL
查看电池状态:
/opt/MegaRAID/MegaCli/MegaCli64-AdpBbuCmd-GetBbuStatus-a0|grep-e'^isSOHGood'-e'^ChargerStatus'-e'^RemainingCapacity'
WriteBack
24753.334TpmC
WriteThrough
20377.334TpmC
WriteThrough会降低不少的性能。
注意:
根据 的测试,打开writecache,有可能在极端情况下(突然断电)丢失少量数据,对于数据很敏感的DB,要小心使用。
看一下最后优化过后的RAID信息:
db2:
~#/opt/MegaRAID/MegaCli/MegaCli64-LDInfo-Lall-aAll
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Mysql 数据库 服务器 性能 配置 优化