linux mysql  java tomcat在线系统   我在my.cnf 文件设置 innodb_buffer_pool_size=1024MB
Total memory allocated 1221496288; in additional pool allocated 329216
Dictionary memory allocated 74480
Buffer pool size   65536
Free buffers       64639-----有问题
Database pages     896
Modified db pages  21查各种文档
有2大方法各执一词
1种说 innodb_buffer_pool_size越大越好,最好设置为物理内存的 60-80%-。如果这样,上面参数innodb_buffer_pool_size=1024MB没有问题
2 另外说法是 Free buffers     应该接近0是最好的  ---如果这样上面是有问题的    另外我找机器测试发现将nnodb_系列的参数全部注释后,重启db显示如下的状态信息
Total memory allocated 21570642; in additional pool allocated 1048576
Buffer pool size   512
Free buffers       0
Database pages     434
Modified db pages  0
  
     难道我不设置innodb_buffer_pool_size倒最好???如果要设是否innodb_buffer_pool_size=20M最好

解决方案 »

  1.   

    0.00 reads/s, 0.00 creates/s, 0.00 writes/s
    Buffer pool hit rate 1000 / 1000
    --------------应该是100%了吧
      

  2.   

    解答
    在保证系统不宕机,不发生内存溢出(OOM),不发生严重内存swap,给myisam及系统预留一定份额前提下,给innodb分配的buffer越大越好,浪费就浪费点
      

  3.   

    转载 
    Innodb大到什么程度好?
        对于一个专用的DB,理论上可以分到60%-80%的内存给DB.  分到60%-80%是不是就OK了,就不用管了.当然不是了. 是不是合适,可以通过show engine innodb status\G; 查看命中情况. 当命中没达到97%以上,都可以考虑加内存,当然这个和业务也有关例如对一个master的写入量大,读少就是特例. 其它情况如果没达到97%以上,对于读取多的情况,如果没达到98%以上,都说明buffer不够.可以扩.
         再从另一方面来讲如果给分了20%的内存命中都能达到100%了,而且还有大量的free page那说明,那就够用了,另外也可以跟据free page去算一下可以再减少点内存. 把那些内存用到别用呢.