如果数据库高速缓存区设置为db_block_buffers=8192
保持缓存池为:BUFFER_POOL_KEEP=1000
再生缓存池为:BUFFER_POOL_RECYCLE=1000
那:默认缓存池=数据库高速缓存区-保持缓存池-再生缓存池
   即:默认缓存池=6192注意三者之间的关系

解决方案 »

  1.   

    如果你不是很清楚,不要配置这个
    给你一个例子
    db_block_buffers=30000
    db_writer_processes = 4
    db_block_lru_latches = 4
    buffer_pool_keep = (buffers:10000, lru_latches:1)
    buffer_pool_recycle = (buffers:5000, lru_latches:1)
    要分配好db_writer_processes与db_block_lru_latches
      

  2.   

    penitent:谢谢你的例子,现在实验成功了。
    我想多问一句,那么db_writer_processes与db_block_lru_latches与buffer_pool_keep和buffer_pool_recycle有什么具体关系呢?
    我只知道db_block_lru_latches>=db_writer_processes。
      

  3.   

    db_writer_processes建议最好等于db_block_lru_latches
    但是,对于单CPU的机器来说,多个db_writer_processes与db_block_lru_latches是没有什么意义的.
    db_writer_processes最好=db_block_lru_latches(建议)
    default_pool=
    db_block_buffers-(buffer_pool_keep+buffer_pool_recycle)
    如果对象不是指定到keep pool and recycle pool
    那么这个对象将利用default pool
    lru latches(内存锁)的要求是每个pool至少要有一个latch
    但lru latches不能超过cpu*6,每个latch管理的buffers不能少于50
      

  4.   

    penitent(只取一瓢):你所说的每个pool至少要有一个latch,就说指keep、recycle、default_pool必须各有一个吗?那就说db_block_lru_latches最小应该等于3了?
    呵呵,请再回答一下这个问题。