一 简介:linux内存和mysql
二 分类
   1 用户空间和内核空间
      用户空间内存,从低到高分别是五种不同的内存段
      1 只读段 包含代码和常量等
      2 数据段 包含全局变量等
      3 堆,包含动态分配的内存,从低地址开始增长
      4 文件映射段,包括动态库,共享内存等,从高地址开始向下增长
      5 栈,包括局部变量和函数调用的上下文切换等,栈的大小一般是8MB
   2 分配内存
     1 使用C标准库的malloc()或者mmap(),就可以在堆和文件映射段分配内存了,通过free()或者ummap()进行释放
   3 回收内存空间的方式
     注意 下面进行回收的内存都是被标记为已使用的
     1 回收缓存 LRU淘汰不常使用的缓存页
     2 回收不常访问的内存.把不常用的内存通过交换分区直接写到磁盘中
     3 杀死进程 OOM-KILLER
   4 top关注进程
     virt是虚拟内存占用量,即便没有使用,只要申请过,就会算进去
     res 是实际占用内存,但是不包含共享内存和swap占用
     share 是共享内存大小
     mem% 是进程占用物理内存的百分比 
     注意 通常情况下虚拟内存的占用会远远大于真实内存,但是如果相等,就标明申请的全部用到
   5 free -m
   1 Buffer(缓冲区) 是对磁盘数据的缓存,用来合并多次小写成为一次大写
   2 Cache(缓存) 是文件数据的缓存,用来进行文件的读写
   数据库针对cache的使用率非常高,因为都是从文件读取数据到内存的
三 mysql层
 1 innodb_buffer_pool定义(主要)
 2 session占用(次要)
 3 table cache相关的内存(次要)
 4 tmp/memory 引擎表占用(次要)
四 分析方法
  一 linux角度
  工具:pmap是linux系统自带的一款内存分析工具
  用法: pmap -d pid
  说明
  -x extended Show the extended format. 显示扩展格式
  -d device Show the device format. 显示设备格式
  输出结果解析:
  1 mapped 和writeable/private 能够反映内存的变化.
     mapped 表示该进程映射的虚拟地址空间大小,也就是该进程预先分配的虚拟内存大小,即ps出的vsz
     writeable/private 表示进程所占用的私有地址空间大小,也就是该进程实际使用的内存大小
     shared 表示进程和其他进程共享的内存大小

工具: valgrind

用法: ./valgrind --tool=memcheck --leak-check=yes --show-reachable=yes program

可以确定是否有内存泄漏
二 mysql角度
  版本:mysql5.7+
  分析 1 根据 performance_schema 可以分析 现主要的占用内存,比如innodb_buffer_pool,session等
          2 查看mysql innodb_buffer_pool的命中率

五 常见问题:
  1 linux系统内存较少,mysql发生OOM
  2 linux系统内存很大,mysql innodb_buffer_pool指定很少,但是内存占用无限大,最后导致被OOM

mysql 与linux ~ 内存分析与调优的更多相关文章

  1. mysql与linux ~ 磁盘分析与调优

    一 简介 谈谈磁盘IO的问题二 目的:如何进行IO性能问题的排查 二  linux角度   一 机械硬盘基本定义       寻道时间,表示磁头在不同磁道之间移动的时间(最耗时).       旋转延 ...

  2. linux性能分析及调优

    第一节:cpu 性能瓶颈 计算机中,cpu是最重要的一个子系统,负责所有计算任务: 基于摩尔定律的发展,cpu是发展最快的一个硬件,所以瓶颈很少出现在cpu上: 我们线上环境的cpu都是多核的,并且基 ...

  3. linux性能调分析及调优

    转:https://blog.csdn.net/luokehua789789/article/details/53007456 Linux 性能分析以及调优介绍 写在前面:计算机要解决的基本问题之一是 ...

  4. MySQL数据库的性能分析 ---图书《软件性能测试分析与调优实践之路》-手稿节选

    1  .MySQL数据库的性能监控 1.1.如何查看MySQL数据库的连接数 连接数是指用户已经创建多少个连接,也就是MySQL中通过执行 SHOW  PROCESSLIST命令输出结果中运行着的线程 ...

  5. linux 内核参数VM调优 之 参数调节和场景分析

    1. pdflush刷新脏数据条件 (linux IO 内核参数调优 之 原理和参数介绍)上一章节讲述了IO内核调优介个重要参数参数. 总结可知cached中的脏数据满足如下几个条件中一个或者多个的时 ...

  6. (转)linux IO 内核参数调优 之 参数调节和场景分析

    1. pdflush刷新脏数据条件 (linux IO 内核参数调优 之 原理和参数介绍)上一章节讲述了IO内核调优介个重要参数参数. 总结可知cached中的脏数据满足如下几个条件中一个或者多个的时 ...

  7. Linux 系统TCP连接内存大小限制 调优

    系统TCP连接内存大小限制 TCP的每一个连接请求,读写都需要占用系统内存资源,可根据系统配置,对TCP连接数,内存大小,限制调优. 查看系统内存资源 记录内存 详情:cat /proc/meminf ...

  8. 鲲鹏性能优化十板斧(二)——CPU与内存子系统性能调优

    1.1 CPU与内存子系统性能调优简介 调优思路 性能优化的思路如下: l   如果CPU的利用率不高,说明资源没有充分利用,可以通过工具(如strace)查看应用程序阻塞在哪里,一般为磁盘,网络或应 ...

  9. MySQL基础普及《MySQL管理之道:性能调优、高可用与监控》

    最近工作的内容涉及MySQL运维内容,陆陆续续读了几本相关的书,其中一本是<MySQL管理之道:性能调优.高可用与监控>. 内容涵盖性能调优(包括sql优化等).备份.高可用,以及读写分离 ...

随机推荐

  1. c/c++ 大于等于 大于 时间效率比较

    变成汇编,都是: 大于等于和大于都是电路上的处理,时间上应该差不多.

  2. jmeter的介绍和使用一

    一,jmeter介绍 1.官方网站下载jmeter,然后解压安装.我用的mac,用mac来讲解. 这是解压以后的包. 2.bin目录里面是一些可执行的文件 ,重点关注启动 如果是windows系统,直 ...

  3. IDEA或者WebStorm关闭JS文件的黄色提示

    这个编译器虽然好用,但是友好的提醒(语法校验)太多啦 解决: 在右下角有个小人儿 然后更改提示级别

  4. rm刷机 root

    http://www.miui.com/download-290.html http://www.miui.com/shuaji-329.html    小米稳定版 不可以root 只有升级到上面的开 ...

  5. pageObject+selenium

    新发现的设计模式,很好用. 参考:https://www.cnblogs.com/xiaofeifei-wang/p/6733753.html

  6. java io系列26之 RandomAccessFile

    本文主要介绍 RandomAccessFile. 转载请注明出处:http://www.cnblogs.com/skywang12345/p/io_26.html 更多内容请参考:java io系列0 ...

  7. win10的cmd中显示:telnet不是内部或外部命令也不是可运行的程序或批处理?

    win10的cmd中显示:telnet不是内部或外部命令也不是可运行的程序或批处理? 摘录自:https://blog.csdn.net/haijing1995/article/details/664 ...

  8. eclipse+tomcat+maven+springmvc+mybatis+mysql集成WebService插件(Axis2+CXF)

    $1 环境介绍 $1.1 Eclipse Java EE IDE for Web Developers:Neon.2 Release (4.6.2) $1.2 Maven:3.3.9 $1.3 Spr ...

  9. Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more jquery-1.12.4.js:10208

    ajax执行请求之后返回了数据但是不执行success()函数,原因是返回得数据类型不是ajax请求中设定的:dataType:"json",因为是一个Map<Object, ...

  10. WebStorm记录(2)

    继续效果图 CSS初始化 前面理解错了,背景图应该铺满 <div class="bg"> html,body,*{ /*盒子模型使用边框模式*/ box-sizing: ...