MYSQL,innodb_buffer_pool_size内存分配
为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内存分配的更多相关文章
- mysql中内存的使用与分配
mysql的内存分配,是调优的重中之重,所以必须搞清楚内存是怎么分配的 mysql> show global variables like '%buffer%'; +-------------- ...
- MySQL中内存分为全局内存和线程内存
首先我们来看一个公式,MySQL中内存分为全局内存和线程内存两大部分(其实并不全部,只是影响比较大的 部分): 复制代码 代码如下: per_thread_buffers=(read_buffer_s ...
- Mysql占用内存过高的优化过程
一.环境说明: 操作系统:CentOS 6.5 x86_64 数据库:Mysql 5.6.22 服务器:阿里云VPS,32G Mem,0 swap 二.问题情况: 1.某日发现公司线上系统的Mysql ...
- MySQL将内存用在了哪里
本片文章参考官网讲述MySQL是如何分配内部内存,同时涉及到如何合适设的置内存分配以及如何监控内存的使用情况 官方文档 MySQL在启动时默认被分配给512MB RAM,可以通过设置相关内存参数对其进 ...
- 记一次Mysql占用内存过高的优化过程
一.环境说明: 操作系统:CentOS 6.5 x86_64 数据库:Mysql 5.6.22 服务器:阿里云VPS,32G Mem,0 swap 二.问题情况: 1.某日发现公司线上系统的Mysql ...
- mysql大内存高性能优化方案
mysql优化是一个相对来说比较重要的事情了,特别像对mysql读写比较多的网站就显得非常重要了,下面我们来介绍mysql大内存高性能优化方案 8G内存下MySQL的优化 按照下面的设置试试看:key ...
- RAMCloud:内存云存储的内存分配机制
现在全闪存阵列已经见怪不怪了,EMC的XtremIO,还有VNX-F(Rockies),IBM FlashSystem.全闪存真正为效率而生,重新定义存储速度.凭借极致性能,高可用性,为您极大提高企业 ...
- MySQL InnoDB内存压力判断以及存在的疑问
本文出处:http://www.cnblogs.com/wy123/p/7259866.html(保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错误 ...
- MySQL Memory--内存分配相关参数
Seesion级的内存分配: max_threads(当前活跃连接数)* ( read_buffer_size(顺序读缓冲,提高顺序读效率) + read_rnd_buffer_size(随机读缓冲, ...
随机推荐
- javascript --- 事件托付
javascript 之 事件托付 长处:1.提高性能(仅仅须要对父级进行操作,子节点相同会拥有其相关属性和方法) 2.对于新加入的事件.也让其拥有父级事件的属性 <!doctype html& ...
- iOS学习——iOS国际化(十二)
开发的移动应用更希望获取更多用户,走向世界,这就需要应用国际化,国际化其实就是多语言.这篇文章介绍Xcode4.5以后的国际化,包括应用名国际化和应用内容国际化.如果是Xcode4.5之前版本请参考. ...
- 动态分析maillog日志,把恶意链接直接用防火墙禁止
近期用 postfix + dovecot 搭建了一个邮件server, 被人当做垃圾邮件转发器,经过配置postfix 的黑白名单, postfix 提示成功的 REJECT 了垃圾邮件, 只是还是 ...
- linux c socket 案源
service结束 #include <sys/types.h> #include <sys/socket.h> #include <stdio.h> #inclu ...
- iOS文件保存策略
Where You Should Put Your App’s Files To prevent the syncing and backup processes on iOS devices fro ...
- POI数据下载器
偶尔用点儿POI数据,所以写了一个下载器.用到的东西还真不少. 功能点 +编写翻页脚本 +CSharp与JS交互 +POI数据转换json +CSharp的json序列化类 +CSharp读写json ...
- dedecms 文章列表和频道列表同时调用
演示效果:http://www.mypf110.com/qcd/ <div class="changshi_wrap"> {dede:channelartlist ro ...
- NET Core 1.0 RC2
NET Core 1.0 RC2 历险之旅 文章背景:对于.NET Core大家应该并不陌生, 从它被 宣布 到现在已经有1-2年的时间了,其比较重要的一个版本1.0 RC2 也即将发布..Net C ...
- [置顶] Guava学习之Immutable集合
Immutable中文意思就是不可变.那为什么需要构建一个不可变的对象?原因有以下几点: 在并发程序中,使用Immutable既保证线程安全性,也大大增强了并发时的效率(跟并发锁方式相比).尤其当一个 ...
- Python倒计时器(转)
# Countdown using Tkinter from Tkinter import * import time import tkMessageBox class App: def __ini ...