zoukankan      html  css  js  c++  java
  • 14.4.3.5 Configuring InnoDB Buffer Pool Flushing 配置InnoDB Buffer Pool 刷新:

    14.4.3.5 Configuring InnoDB Buffer Pool Flushing 配置InnoDB Buffer Pool 刷新:
    
    InnoDB执行某些任务在后台, 包括flush 脏数据(那些页已经被修改了但是没有会写到磁盘) 在Buffer pool
    
    里。
    
    
    InnoDB flush buffer pool pages 如果脏页的比例在buffer pool 已经大于或
    
    innodb_max_dirty_pages_pct.者等于innodb_max_dirty_pages_pct.
    
    mysql> show variables like '%innodb_max_dirty_pages_pct%';
    +--------------------------------+-------+
    | Variable_name                  | Value |
    +--------------------------------+-------+
    | innodb_max_dirty_pages_pct     | 75    |
    | innodb_max_dirty_pages_pct_lwm | 0     |
    +--------------------------------+-------+
    2 rows in set (0.00 sec)
    
    
    InnoDB 使用一种算法来评估需要的刷新速率,基于redo log 生产的速度护额当前刷新的频率。
    
    
    目的是消除性能通过确保buffer flush 活动保持与 buffer pool "clean" 需要
    
    
    自动的调整 刷新的速度 可以帮助避免急速的下降在吞吐量上,当过多的buffer pool 刷新限制了
    
    I/O可以容量对于普通的读和写活动
    
    
    InnoDB 使用它的log files 以循环的方法,在重用日志文件的一部分,
    
    InnoDB flushes 到磁盘 所有的dirty buffer pool pages,那些redo entries 是包含在log files 中的,
    
    
    一个过程被称为一个锋利的检查点。
    
    
    如果一个负载是密集写的,它产生了大量的redo 信息,所有写入到log file.
    
    
    如果所有可能的空间在log files 是被占用,一个犀利的检查点发生,导致吞吐量暂时减少,
    
    这个情况肯呢过发生尽管innodb_max_dirty_pages_pct 没有达到。
    
    
    InnoDB 使用一个基于启发式算法来避免这样的情况,通过测量dirty pages 的数量在buffer pool
    
    和redo 生产的速率。
    
    
    基于这些数字,InnoDB 决定有多少dirty pages flush 从buffer pool 每秒钟。
    
    这种自适应的算法是可以处理突然的负载的改变
    
    
    内部基准表明 算法不能保持吞吐量随着时间推移,但是也改善了吞吐量

  • 相关阅读:
    Marker
    Log4j 2
    Spring 中 CharacterEncodingFilter 失效?
    Java 泛型通配符
    待修 Bug
    Java Class SecurityManager
    bzoj 5210: 最大连通子块和【动态dp+树剖+线段树+堆】
    洛谷 P4719 【模板】动态dp【动态dp】
    bzoj 2555: SubString【后缀自动机+LCT】
    洛谷 P4125 [WC2012]记忆中的水杉树【扫描线+set+线段树】
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13350651.html
Copyright © 2011-2022 走看看