在Solaris ZFS上调整InnoDB_Buffer_Pool_Size重要吗?
题
我们在一个相当大的服务器(2 x四核eons,24gb RAM,2.5“的RAID10中,我们正在运行适度的大小(350亿行,50亿行,50GB)的数据库),并获得一些非常慢的插入件(例如单行的简单插入,需要90秒!)。
我们的Innodb_buffer_pool_size设置为400MB,通常对于这种设置来说通常太低。但是,我们的托管提供商建议在ZFS上运行时这是无关紧要的。他是对吗?
(为 https://dba.stackexchange.com/questions/1975/is-tuning-the-innodb-buffer-pool-size-important-on-solaris-zfs ,但我不确定多大观众在那边!)
解决方案
我仍然将Innodb_buffer_pool_size高得多400米。原因? innodb缓冲池仍将缓存频繁访问的表所需的数据和索引页。
运行此查询以在MB中获取推荐的InnoDB_Buffer_Pool_Size:
选择concat(圆形(kbs / power(1024,if(pw <0,0,if(pw> 3,0,pw))),substr('kmg',if(pw <0, 0,if(pw> 3,0,pw))+ 1,1))推荐_innodb_buffer_pool_size(从Information_schema.Tables中选择Sum(data_length + index_length)kbs,其中leable='innodb')a,(选择2 pw)b; 只需使用此查询的结果或80%安装的RAM(在您的情况下为19660M),以较小的方式。
我还将将Innodb_log_file_size设置为InnoDB缓冲池大小的25%。不幸的是,InnoDB_Log_file_size的最大值为2047米。 (截至2g的1米),因此,自Innodb_buffer_Pool_Size的25%的InnoDB_Buffer_Pool_Size的InnodB_Log_file_size设置为4915米。
又一个推荐是
其他提示
可能值得读取如果你还没有。同样这个链接在此问题上 - 特别是在考虑交易时,如果您正在执行多个插入到大型表格。
更相关是这个mysql文章的Innodb和zfs的性能哪个专门考虑缓冲池大小。
与InnoDB,ZFS性能曲线建议“将缓冲池大小为低电平的”新策略“,并让ZFS处理数据缓冲。”