为MYSQL。innodb_buffer_pool_size=8G。MySQL一起动就会将占用掉8G内存(觉得TOP能够看到内存被使用了8G),可是近期才细致研究一下。原来不是这种(可能自己对Linux malloc内存分配也仅仅是知道了个皮毛吧)。MySQL启动时实际仅仅是在虚拟内存中分配了地址空间,而并没有真正的映射到物理内存上。

由于malloc分配内存是先在虚拟内存中分配地址的,到实际使用时才真正的映射到物理内存

因此这个地方。假设因为机器内存使用不当。到了MySQL真正要映射物理内存时。假设物理内存不足了。就会出错甚至退出。

可是这里也有个非常奇异的地方就是Linux下的OOM Killer:

假如我一个程序A已经执行,而且分配了22G内存(机器配置是物理内存16G+SWAP 8G),可是没有真正的映射到物理内存;

这时MySQL启动,innodb_buffer_pool_size=8G,启动正常。

然后程序A開始实际分配物理内存。一下子仅仅剩下2G SWAP内存了。

这时MYSQL也開始实际使用内存,由于仅仅有2G SWAP,所以性能非常差。再超过2G时,内存耗尽,这时OOM Killer開始杀进程,怎么杀呢,谁占用内存多杀谁,于是将进程A杀掉了,内存一下子回来了,MySQL不会退出;

可是一般系统中MySQL都是分配内存最大的,所以常常性的是MySQL被杀掉。

Linux OOM Killer可參见:理解和配置 Linux 在下面 OOM Killer

版权声明:本文博主原创文章,博客,未经同意不得转载。

MYSQL,innodb_buffer_pool_size内存分配的更多相关文章

  1. mysql中内存的使用与分配

    mysql的内存分配,是调优的重中之重,所以必须搞清楚内存是怎么分配的 mysql> show global variables like '%buffer%'; +-------------- ...

  2. MySQL中内存分为全局内存和线程内存

    首先我们来看一个公式,MySQL中内存分为全局内存和线程内存两大部分(其实并不全部,只是影响比较大的 部分): 复制代码 代码如下: per_thread_buffers=(read_buffer_s ...

  3. Mysql占用内存过高的优化过程

    一.环境说明: 操作系统:CentOS 6.5 x86_64 数据库:Mysql 5.6.22 服务器:阿里云VPS,32G Mem,0 swap 二.问题情况: 1.某日发现公司线上系统的Mysql ...

  4. MySQL将内存用在了哪里

    本片文章参考官网讲述MySQL是如何分配内部内存,同时涉及到如何合适设的置内存分配以及如何监控内存的使用情况 官方文档 MySQL在启动时默认被分配给512MB RAM,可以通过设置相关内存参数对其进 ...

  5. 记一次Mysql占用内存过高的优化过程

    一.环境说明: 操作系统:CentOS 6.5 x86_64 数据库:Mysql 5.6.22 服务器:阿里云VPS,32G Mem,0 swap 二.问题情况: 1.某日发现公司线上系统的Mysql ...

  6. mysql大内存高性能优化方案

    mysql优化是一个相对来说比较重要的事情了,特别像对mysql读写比较多的网站就显得非常重要了,下面我们来介绍mysql大内存高性能优化方案 8G内存下MySQL的优化 按照下面的设置试试看:key ...

  7. RAMCloud:内存云存储的内存分配机制

    现在全闪存阵列已经见怪不怪了,EMC的XtremIO,还有VNX-F(Rockies),IBM FlashSystem.全闪存真正为效率而生,重新定义存储速度.凭借极致性能,高可用性,为您极大提高企业 ...

  8. MySQL InnoDB内存压力判断以及存在的疑问

    本文出处:http://www.cnblogs.com/wy123/p/7259866.html(保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错误 ...

  9. MySQL Memory--内存分配相关参数

    Seesion级的内存分配: max_threads(当前活跃连接数)* ( read_buffer_size(顺序读缓冲,提高顺序读效率) + read_rnd_buffer_size(随机读缓冲, ...

随机推荐

  1. javascript 下拉列表 自己主动取值 无需value

    <select id="applyType" name="$!{status.expression}" class="inp" onc ...

  2. 《转》在win7,boa-constructor 0.6.1 的palette面板中没有控件图标的解决方法

    原地址:http://blog.csdn.net/rickleo/article/details/6532595 在win7-64bit环境下,boa-constructor 0.6.1 的palet ...

  3. linux下自助获取帮助

    几乎所有命令都可以用 -h 或者--help参数 获取命令的使用方法帮助 man ls   也可以获取ls命令的详细帮助信息 man -k XXX  可以查看包含关键字XXX的文档 还有一个更详细的命 ...

  4. [cocos2d-x][apk打包][Fatal signal 11][andriod]Eclipse编译Fatal signal 11报错-都是字符赋值惹的祸

    流程重现: 使用coco2d-x制作了一个2048,在xcode模拟器执行以及在pad上真机调试都是没有问题的. 可是在使用eclipse调试打包android可以执行,可是进入游戏之后会在随机的地方 ...

  5. div仿checkbox表单样式美化及功能

    div仿checkbox表单样式美化及功能(checkbox的样式不好看)素材在底部: 效果图: window.css .bj { position: absolute; top: 0; left: ...

  6. Oracle“记录被另一个用户锁住” 无法更新删除的解决办法

    1.查看数据库锁,诊断锁的来源及类型: select object_id,session_id,locked_mode from v$locked_object; 或者用以下命令: select b. ...

  7. 使用国内源解决Qt在线更新慢的问题

    Qt在线安装更新工具默认使用官方的源,国内访问比较慢,可以在setting中增加国内的源来提高更新速度,如下面的源: http://mirrors.ustc.edu.cn/qtproject/onli ...

  8. Remote Desktop Organizer – 管理组织远程桌面 - 小众软件

    http://www.appinn.com/remote-desktop-organizer/

  9. BytesWritable 存储问题

    public static void main(String args[]){ BytesWritable cv = new BytesWritable(); String str1 = " ...

  10. hadoop学习;大数据集在HDFS中存为单个文件;安装linux下eclipse出错解决;查看.class文件插件

    sudo apt-get install eclipse 安装后打开eclipse,提示出错 An error has occurred. See the log file /home/pengeor ...