在Solaris ZFS上调整innodb_buffer_pool_size是否重要?

问题描述 投票:1回答:3

我们正在一个相当大的服务器上运行一个中等大小(350GB)的数据库,其中包含一些相当大的表(几亿行,50GB)(2个四核Xeon,24GB RAM,RAID10中的2.5“ 10k磁盘) ,并且插入速度非常慢(例如,单行的简单插入需要90秒!)。

我们的innodb_buffer_pool_size设置为400MB,通常对于这种设置来说太低了。但是,我们的托管服务提供商建议在ZFS上运行时这无关紧要。他说的对吗?

([https://dba.stackexchange.com/questions/1975/is-tuning-the-innodb-buffer-pool-size-important-on-solaris-zfs上双重帖子的道歉,但我不确定那边的观众有多大!)

mysql solaris innodb zfs
3个回答
1
投票
运行此查询以获取建议的innodb_buffer_pool_size以MB为单位:

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))推荐_innodb_buffer_pool_size FROM(SELECT SUM(data_length + index_length)KBS FROM information_schema.tables WHERE engine ='InnoDB')A,(SELECT 2 pw)B;] >

仅使用此查询的结果或已安装RAM的80%(在您的情况下为19660M),以较小者为准。

我还将innodb_log_file_size设置为InnoDB缓冲池大小的25%。不幸的是,innodb_log_file_size的最大值为2047M。 (比2G短1M)因此,将innodb_log_file_size设置为2047M,因为我推荐设置的innodb_buffer_pool_size的25%为4915M。

但另一个建议是disable ACID compliance。为innodb_flush_log_at_trx_commit使用0或2(默认值为1,它支持ACID遵从性)。这将产生更快的InnoDB写入

AT THE RISK

,在发生崩溃时最多丢失1秒的事务。

2
投票

0
投票
© www.soinside.com 2019 - 2024. All rights reserved.