14.4.4 Configuring the Memory Allocator for InnoDB  InnoDB 配置内存分配器

当InnoDB 被开发, 内分配齐 提供了与操作系统和运行库往往缺乏在性能和可扩展性,

当时, 没有内存分配库调整对于多核CPUs.

因此,InnoDB实现它自己的内存分配器在内存子系统里,

这个分配器是有单个互斥锁保护的, 会成为一个瓶颈。

InnoDB也实现了一个封装的接口在系统分配器(malloc和free) ,同样是有一个单独的互斥锁保护

如今,随着多核系统已经变得越来越广泛,如今的操作系统变的成熟,

已经显著的改善了操作系统提供的内存分配器。

新的内存变的更好,比过去有更多的可扩展性。

高性能内存分配器 包含Hoard, libumem, mtmalloc, ptmalloc, tbbmalloc, and TCMalloc. 

大多数的负载,特别是那些频繁分配和释放(比如多表连接),收益于使用

一个更高度调优的内存分配器 相对于内部 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 和free 函数 而不是自身管理内存池。这个参数不是动态的, 只有在系统重启时生效, 继续使用InnoDB 内存分配器,设置innodb_use_sys_malloc to 0. 当InnoDB 内存分配器被禁用,InnoDB 忽略innodb_additional_mem_pool_size 参数的值。 InnoDB 内存分配使用一个额外的内存pool 用于满足分配请求不比再到系统内存分配器。 当 InnoDB memory allocator 被禁用, 所有这些分配请求通过系统内存分配满足 在类Unix 系统使用动态链接,更换内存分配器可以和设置环境变量LD_PRELOAD or LD_LIBRARY_PATH 指向动态库实现内存分配器 在其他系统上, 某些链接可能是必要的

14.4.4 Configuring the Memory Allocator for InnoDB InnoDB 配置内存分配器的更多相关文章

  1. 14.6.4 Configuring the Memory Allocator for InnoDB 配置InnoDB 内存分配器

    14.6.4 Configuring the Memory Allocator for InnoDB 配置InnoDB 内存分配器 当InnoDB 被开发时,内存分配提供了操作系统和 run-time ...

  2. 内存分配器 (Memory Allocator)

    对于大多数开发人员而言,系统的内存分配就是一个黑盒子,就是几个API的调用.有你就给我,没有我就想别的办法. 来UC前,我就是这样觉得的.实际深入进去时,才发现这个领域里也是百家争鸣.非常热闹.有操作 ...

  3. 14.6.11 Configuring Optimizer Statistics for InnoDB 配置优化统计信息用于InnoDB

    14.6.11 Configuring Optimizer Statistics for InnoDB 配置优化统计信息用于InnoDB 14.6.11.1 Configuring Persisten ...

  4. 14.6.8 Configuring the InnoDB Master Thread IO Rate 配置InnoDB 主线程IO 速率:

    14.6.8 Configuring the InnoDB Master Thread IO Rate 配置InnoDB 主线程IO 速率: 主线程 在InnoDB 是一个线程 执行各种任务在后台. ...

  5. 14.6.7 Configuring the Number of Background InnoDB IO Threads 配置InnoDB IO Threads的数量

    14.6.7 Configuring the Number of Background InnoDB IO Threads 配置InnoDB IO Threads的数量 InnoDB 使用后台线程来服 ...

  6. 14.6.6 Configuring Thread Concurrency for InnoDB 配置线程并发

    14.6.6 Configuring Thread Concurrency for InnoDB 配置线程并发 InnoDB 使用操作系统线程来处理请求(用户事务) 事务可能执行很多次在它们提交或者回 ...

  7. 14.6.5 Configuring InnoDB Change Buffering 配置InnoDB Change Buffering

    14.6.5 Configuring InnoDB Change Buffering 配置InnoDB Change Buffering 当插入,更新,和删除操作在表上执行, 索引列的值(特别是 se ...

  8. 14.6.2 Configuring InnoDB for Read-Only Operation

    14.6.2 Configuring InnoDB for Read-Only Operation 配置InnoDB只读操作 你可以查询InnoDB 表MySQL 数据目录是一个只读介质,通过启用 - ...

  9. 14.4.9 Configuring Spin Lock Polling 配置Spin lock 轮询:

    14.4.9 Configuring Spin Lock Polling 配置Spin lock 轮询: 很多InnoDB mutexes 和rw-locks 是保留一小段时间,在一个多核系统, 它可 ...

随机推荐

  1. javascript重点笔记

    操作符之间的优先级(高到低):算术操作符 >比较操作符 >逻辑操作符 >"="赋值符号 算术运算符

  2. 墙内安装nautilus-dropbox 1.6.0-2

    软件包:nautilus-dropbox 版本号:1.6.0-2 # aptitude install nautilus-dropbox # less `which dropbox` 查找到下载链接: ...

  3. 使用 HTML5 webSocket API实现即时通讯的功能

    project下载地址:http://download.csdn.net/detail/wangshuxuncom/6430191 说明: 本project用于展示怎样使用 HTML5 webSock ...

  4. 如何灵活使用 ActionBar, Google 音乐ActionBar 隐藏和显示效果

    ActionBar 的历史这里就不介绍了,相信大家都清楚:在一个 app 中,如果 ActionBar 运用的好,那么将会省去大量的代码,而且整个 app 效果也相当不错,大家有兴趣可以下载 goog ...

  5. JavaScript实现获取table中某一列的值

    JavaScript实现获取table中某一列的值 1.实现源代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional/ ...

  6. hdu 4940 Destroy Transportation system( 无源汇上下界网络流的可行流推断 )

    题意:有n个点和m条有向边构成的网络.每条边有两个花费: d:毁坏这条边的花费 b:重建一条双向边的花费 寻找这样两个点集,使得点集s到点集t满足 毁坏全部S到T的路径的费用和 > 毁坏全部T到 ...

  7. 稳定婚姻问题和Gale-Shapley算法(转)

    什么是算法?每当有人问作者这样的问题时,他总会引用这个例子:假如你是一个媒人,有若干个单身男子登门求助,还有同样多的单身女子也前来征婚.如果你已经知道这些女孩儿在每个男孩儿心目中的排名,以及男孩儿们在 ...

  8. iOS &quot;The sandbox is not in sync with the Podfile.lock&quot;解决方式

    更新Cocoapod之后出现故障: diff: /../Podfile.lock: No such file or directory diff: Manifest.lock: No such fil ...

  9. IntelliJ Idea 经常使用快捷键列表

    Alt+回车 导入包,自己主动修正Ctrl+N   查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L  格式化代码 Ctrl+Alt+O 优化导入的类和包Alt+Insert 生成代码(如 ...

  10. delphi中左右翻转窗体(修改EXStyle)

    unit Unit1; interface uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Form ...