如何扩展my.cnf设置和variables,以便从16GB服务器迁移到128GB

这是关于MySQL环境的最佳设置的一个普遍问题,但是我们目前的MySQL服务器安装在16GB内存的机器上,最近我们升级到了更新的服务器(更强大的新戴尔Poweredge服务器),但是128GB RAM可用。

可以这么说,我们已经有了一个清晰的标准,但是想知道如何正确地优化一切,以便在新硬件上达到最佳状态。 任何build议:

  • 文件系统(和块大小/ FS设置)
  • my.cnf(查询大小,缓冲区大小和相关设置)

目前我所得到的是当前my.cnf文件,这些文件是针对最后一个服务器进行了调整的,但我无法在网上find很多指导,说任何设置都应该比它们更高。

这里是你如何设置key_buffer_size和innodb_buffer_pool_size

为MyISAM设置关键缓冲区大小

SELECT CONCAT(ROUND(KBS / POWER(1024,IF(pw <0,0,IF(pw> 3,0,pw)))+ 0.49999),SUBSTR('KMG',IF(pw <0,0,IF (pw> 3,0,pw))+ 1,1))recommended_key_buffer_size FROM(SELECT SUM(index_length)KBS FROM information_schema.tables WHERE engine ='MyISAM'AND table_schema NOT IN('information_schema','mysql'))A ,(SELECT 3 pw)B;

BTW正常工作的最大key_buffer_size是4G

因此,请将key_buffer_size设置为4G或从先前的查询中推荐设置,以较小者为准。

设置innodb_buffer_pool_size

SELECT CONCAT(ROUND(KBS / POWER(1024,IF(pw <0,0,IF(pw> 3,0,pw)))+ 0.49999),SUBSTR('KMG',IF(pw <0,0,IF (pw> 3,0,pw))+ 1,1))recommended_innodb_buffer_pool_size FROM(SELECT SUM(data_length + index_length)KBS FROM information_schema.tables WHERE engine ='InnoDB')A,(SELECT 3 pw)B;

您可能还需要调整ib_logfile0和ib_logfile1的大小。 这里是如何:

步骤1)服务mysql停止
步骤2)将此行添加到/etc/my.cnf
innodb_log_file_size = 2047M(或recommended_innodb_buffer_pool_size的25%,以较小者为准)
第3步)rm -f / var / log / mysql / ib_logfile [01]
第4步)服务mysql启动

要明白为什么这些设置有意义运行此查询

SELECT IFNULL(B.engine,'Total')“Storage Engine”CONCAT(LPAD(REPLACE(FORMAT(B.DSize / POWER(1024,pw),3),'',''),17,' ),'','SUBSTR('KMGTP',pw + 1,1),'B')“Data Size”,CONCAT(LPAD(REPLACE(FORMAT(B.ISize / POWER(1024,pw),3) (格式(B.Tsize /格式),'''','',''),17,''),'',SUBSTR('KMGTP',pw + 1,1),'B' POWER(1024,pw),3),'',''),17,''),'',SUBSTR('KMGTP',pw + 1,1),'B')“Table Size”FROM SELECT引擎SUM(data_length)DSize SUM(index_length)ISize SUM(data_length + index_length)TSize FROM information_schema.tables WHERE table_schema NOT IN('mysql','information_schema','performance_schema')AND引擎IS NOT NULL GROUP BY引擎WITH ROLLUP)B,(SELECT 3 pw)A TSDER ORDER BY TSIZ;

如果您使用InnoDB,则应启用innodb_file_per_table 并清理InnoDB存储

您可能需要运行mysqltuner.pl来获取关于configuration数据库的一些build议。

http://mysqltuner.pl/mysqltuner.pl