zoukankan      html  css  js  c++  java
  • 14.6.4 Configuring the Memory Allocator for InnoDB 配置InnoDB 内存分配器

    14.6.4 Configuring the Memory Allocator for InnoDB 配置InnoDB 内存分配器
    
    
    当InnoDB 被开发时,内存分配提供了操作系统和 run-time libraries是经常缺乏性能和可扩展性
    
    
    在那时,没有内存分配库调整用于多核CPUs.因此,InnoDB 实现它自己的内存分配器在内存子系统。
    
    这个分配器是通过一个的单一的互斥锁保护,会成为一个瓶颈。
    
    InnoDB 也实现一个封装接口
    
    
    如今, 多核系统已经变的越来越广泛, 如今操作系统已经成熟,显著改善已经在内存配置器安装在操作系统。
    
    那些新的内存分配器 执行的更好和比过去更好的扩展。 大部分工作,特别是那些频繁分配和释放(比如多表关联),
    
    
    
    你可以控制是否InnoDB 使用它自己的内存分配器或者一个操作系统的分配器,通过设置 系统变量参数 innodb_use_sys_malloc 的值
    
    
    
    mysql> show variables like '%innodb_use_sys_malloc%';
    +-----------------------+-------+
    | Variable_name         | Value |
    +-----------------------+-------+
    | innodb_use_sys_malloc | ON    |
    +-----------------------+-------+
    1 row in set (0.00 sec)
    
    
    
    如果设置为ON或者1(默认情况下), InnoDB 使用 malloc and free functions以来操作系统而不是自己管理内存池
    
    
    这个参数不是动态的,只有在系统重启时生效。 继续使用InnoDB 内存分配,设置 innodb_use_sys_malloc to 0. 
    
    
     当InnoDB 内存分配器是关闭的, InnoDB 忽略 innodb_additional_mem_pool_size的值。
    
    InnoDB 内存分配使用一个额外的内存池用于满足分配请求 不必再到系统内存分配器。
    
    
    当 InnoDB memory allocator is disabled, 所有这些分配请求是通过系统内存分配执行
    

  • 相关阅读:
    poj 2528 Mayor's posters (线段树+离散化)
    poj 1201 Intervals (差分约束)
    hdu 4109 Instrction Arrangement (差分约束)
    poj 1195 Mobile phones (二维 树状数组)
    poj 2983 Is the Information Reliable? (差分约束)
    树状数组 讲解
    poj 2828 Buy Tickets (线段树)
    hdu 1166 敌兵布阵 (树状数组)
    Ubuntu网络配置
    Button控制窗体变量(开关控制灯的状态)
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13350070.html
Copyright © 2011-2022 走看看