mysql 与linux ~ 内存分析与调优

一 简介: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 表示进程和其他进程共享的内存大小
二 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

原文地址:https://www.cnblogs.com/danhuangpai/p/10342166.html

时间: 2024-10-09 03:49:34

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

Android内存分析和调优(上)

Android内存分析和调优(上) Android内存分析工具(四):adb命令

Linux内存监控与调优

首先,内存在被使用是被分为区域的 32位系统:zone_DMA ·zone_NORMAL (正常内存区域 16M) ·zone_RESRVED(用于高地址内存空间 896M) ·zone_HIGHMEM(高地址内存空间 ) 64位系统: ·zone_DMA(16G) ·zone_DMA32(4G) ·zone_normal(大于4G) 内存大页 : HugePage:大页面,在rhel 6 x64位系统上不但支持大页面而且支持使用透明大页 THP:透明大页,简单来讲就是对匿名内存的使用,不需要用

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

1. pdflush刷新脏数据条件 (linux IO 内核参数调优 之 原理和参数介绍)上一章节讲述了IO内核调优介个重要参数参数. 总结可知cached中的脏数据满足如下几个条件中一个或者多个的时候就会被pdflush刷新到磁盘: (1)数据存在的时间超过了dirty_expire_centisecs(默认30s)时间 (2)脏数据所占内存 /(MemFree + Cached - Mapped) > dirty_background_ratio.也就是说当脏数据所占用的内存占(MemFre

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

最近工作的内容涉及MySQL运维内容,陆陆续续读了几本相关的书,其中一本是<MySQL管理之道:性能调优.高可用与监控>. 内容涵盖性能调优(包括sql优化等).备份.高可用,以及读写分离等,对于普及MySQL基础非常有用.记录一下,以便于后面查阅. 附目录: 1章 MariaDB架构与历史1 1.1 MariaDB的介绍 1 1.2 MariaDB和MySQL的兼容性 2 1.3 MariaDB 10.0新增的功能 3 1.3.1 更多的存储引擎 4 1.3.2 速度的提升 5 1.3.3

性能测试分析与性能调优诊断--史上最全的服务器性能分析监控调优篇

一个系统或者网站在功能开发完成后一般最终都需要部署到服务器上运行,那么服务器的性能监控和分析就显得非常重要了,选用什么配置的服务器.如何对服务器进行调优.如何从服务器监控中发现程序的性能问题. 如何判断服务器的瓶颈在哪里等 就成为了服务器性能监控和分析时重点需要去解决的问题了. 1     服务器的性能监控和分析 1.1      Linux服务器的性能指标监控和分析 1.1.1       通过vmstat深挖服务器的性能问题 1.1.2       如何通过mpstat 分析服务器的性能指标

Perf Event :Linux下的系统性能调优工具

Perf Event :Linux下的系统性能调优工具 2011-05-27 10:35 刘 明 IBMDW 字号:T | T Perf Event 是一款随 Linux 内核代码一同发布和维护的性能诊断工具,由内核社区维护和发展.Perf 不仅可以用于应用程序的性能统计分析,也可以应用于内核代码的性能统计和分析.得益于其优秀的体系结构设计,越来越多的新功能被加入 Perf,使其已经成为一个多功能的性能统计工具集 .本文将介绍 Perf 在应用程序开发上的应用. AD:2014WOT全球软件技术

x86服务器中网络性能分析与调优 转

x86服务器中网络性能分析与调优 2017-04-05 巨枫 英特尔精英汇 [OpenStack 易经]是 EasyStack 官微在2017年新推出的技术品牌,将原创技术干货分享给您,本期我们讨论 [x86服务器中网络性能分析与调优] 那些事! >> 网络性能理论极限 网络数据包处理的性能指标,一般包括吞吐.延时.丢包率.抖动等. 数据包有大有小,数据包的大小对这些性能指标有很大的影响. 一般认为服务器处理能力很强,不是数据包处理的瓶颈,而通过物理线路能够传送数据包的最大速率,即线速(Wir

MySQL管理之道:性能调优、高可用与监控》迷你书

MySQL管理之道:性能调优.高可用与监控>迷你书 MYSQL5.5.X主要改进 1.默认使用innodb存储引擎2.充分利用CPU多核处理能力3.提高刷写脏页数量和合并插入数量,改善I/O4.让innodb_buffer_pool缓冲池中的热数据存活更久,污染问题5.innodb数据恢复时间加快6.innodb同时支持多个buffer pool实例7.可关闭自适应哈希索引,semaphores信号量8.在innodb中可选择使用内存分配程序:TCMalloc 谷歌开发9.提高默认innodb线

性能分析与调优的原理

最近一直纠结性能分析与调优如何下手,先从硬件开始,还是先从代码或数据库.从操作系统(CPU调度,内存管理,进程调度,磁盘I/O).网络.协议(HTTP, TCP/IP ),还是从应用程序代码,数据库调优,中间件配置等方面入手. 单一个中间件又分web中间件(apache .IIS),应用中间件(tomcat .weblogic .webSphere )等,虽然都是中间件,每一样拎出来往深了学都不是一朝一夕之功.但调优对于每一项的要求又不仅仅是“知道”或“会使用”这么简单.起码要达到“如何更好的使