原标题:故障排除指南:MySQL的运行内存不足怎么办?

[ ]

【IT168 评论】故障排除对于所有人来说都不会是一件有趣的事情,尤其是在没有崩溃报告的情况下。如果MySQL因内存不足而崩溃时应该怎么办?Peter Zaitsev曾在2012年写过的一篇博客中给出了许多有用的提示,而利用新版本的MySQL的(5.7及以上)和performance_schema,我们可以更轻松地解决MySQL的内存分配问题。

本文将向大家介绍如何解决MySQL的内存分配问题。

首先,我们先来看一下在哪些情况下的MySQL会因内存不足而崩溃:

当MySQL的尝试分配比可用内存更多的内存时,例如没有正确设置innodb_buffer_pool_size;

服务器上还有一些其他进程可以分配内存,比如它应用程序(使用Java,Python,PHP),网络服务器,或者是备份(即mysqldump的)。

MySQL的中的内存泄漏。这是最糟糕的情况,我们需要进行故障排除。

以上,就是常见的三种MySQL的因内存不足而崩溃的情况,其中前两种情况比较好解决,而第三种情况就比较棘手。

从哪里开始排除MySQL的内存泄漏问题

假设这是一个Linux的服务器,我们首先要 检查的Linux操作系统和配置 ,

1.检查mysql错误日志和Linux日志文件(即/ var / log / messages或/ var / log / syslog)来识别崩溃。你可能会看到OOM Killer杀死MySQL的条目,可以使用“dmesg”来显示相关的详细信息。

2.检查可用的RAM: free -g cat / proc / meminfo

3.检查哪些应用程序正在使用RAM: “top”或“htop”

4.检查mysql配置: /etc/my.cnf或一般/ etc / my *(包括/ etc / mysql / *等文件),MySQL可能正在运行不同的my.cnf(运行ps ax | grep mysql)

5.运行vmstat 5 5以查看系统是否正在通过虚拟内存进行读/写以及是否正在进行交换

6.对于非生产环境,我们可以使用其他工具(如Valgrind的,GDB等)来检查的MySQL的使用情况。

检查MySQL的内部

我们也可以通过检查MySQL的内部来发现潜在的MySQL的内存泄露.MySQL在很多地方都会有内存分配,尤其是在以下情况下:

1.表缓存

2.Performance_schema(运行:show engine performance_schema status,并查看最后一行)。

3.InnoDB(运行show engine innodb status并检查缓冲池部分,为buffer_pool和相关缓存分配的内存)

4.RAM中的临时表(select * from information_schema .tables where engine ='MEMORY')

5.准备语句。

不过,从MySQL 5.7版本开始,我们就可以在performance_schema中查看内存分配。那么,如何使用呢?

首先,我们需要启用收集内存指标.RUN:

UPDATE setup_instruments SET ENABLED ='YES'名称在哪里'记忆/%';

sys schema 运行 报告 :

select event_name,current_alloc,high_alloc来自sys.memory_global_by_current_bytes其中current_count> 0;

通常,分配内存时会提供代码,所以在某些情况下搜索某些错误时,我们可能需要检查 MySQL的 源代码例如,对于在触发器中过度分配内存的错误:

某些情况下搜索某些错误时,我们可能需要检查MySQL的源代码例如,对于在触发器中过度分配内存的错误:

mysql> select memory_name,current_alloc,high_alloc from memory_global_by_current_bytes where current_count> 0;+ ------------------------------------------------- ------------------------------- + --------------- +- ----------- +| event_name | current_alloc | high_alloc |+ ------------------------------------------------- ------------------------------- + --------------- +- ----------- +| 记忆/ innodb / buf_buf_pool | 7.29 GiB | 7.29 GiB || memory / sql / sp_head :: main_mem_root | 3.21 GiB | 3.62 GiB

RAM中最大的块通常是缓冲池,但存储过程中的3G似乎也太高了。

根据MySQL的源代码文档,SPHead表示存储程序的一个实例,该程序可能是任何类型(存储过程,函数,触发器,事件)。在这种情况下,就会有潜在的内存泄漏。此外,如果我们想要更清楚的知道MySQL的内存情况,还可以得到一个更高级别的总报告。

mysql> select substring_index( - > substring_index(event_name,'/',2), - >'/', - > -1 - >)作为event_type, - > round(sum(CURRENT_NUMBER_OF_BYTES_USED)/ 1024/1024,2)为MB_CURRENTLY_USED - > from performance_schema.memory_summary_global_by_event_name - >按event_type分组 - > MB_CURRENTLY_USED> 0;+ -------------------- + ------------------- +| event_type | MB_CURRENTLY_USED |+ -------------------- + ------------------- +| innodb | 0.61 || 记忆| 0.21 || performance_schema | 106.26 || sql | 0.79 |+ -------------------- + ------------------- +4行(0.00秒)返回搜狐,查看更多

责任编辑:

mysql进程内存不足_故障排除指南:MySQL的运行内存不足怎么办?相关推荐

  1. 安装mysql出现存储不足_故障排除指南:MySQL的运行内存不足怎么办?

    [IT168 评论]故障排除对于所有人来说都不会是一件有趣的事情,尤其是在没有崩溃报告的情况下.如果MySQL因内存不足而崩溃时应该怎么办?Peter Zaitsev曾在2012年写过的一篇博客中给出 ...

  2. mysql 16g 内存服务器_服务器物理内存16G mysql数据库my.cnf配置及参数说明

    <服务器物理内存16G mysql数据库my.cnf配置及参数说明>要点: 本文介绍了服务器物理内存16G mysql数据库my.cnf配置及参数说明,希望对您有用.如果有疑问,可以联系我 ...

  3. java应用程序占用高内存_对Java应用程序中的内存问题进行故障排除

    java应用程序占用高内存 重要要点 解决内存问题可能很棘手,但是正确的方法和正确的工具集可以大大简化此过程. Java HotSpot JVM可以报告几种OutOfMemoryError消息,因此务 ...

  4. 力士乐驱动器原理图_(IndraDrive)力士乐HCS伺服驱动器故障排除指南.pdf

    (IndraDrive)力士乐HCS伺服驱动器故障排除指南.pdf Electric Drives Linear Motion and and Controls Hydraulics Assembly ...

  5. iOS故障排除指南:基本技巧

    [2013年1月16日 51CTO外电头条]本文为<iOS故障排除指南:基本技巧>.在iOS程序的数组中的三个对象莫名其妙成了五个.新开发成员的加入令游戏性不升反降:熟悉应用开发的各位朋友 ...

  6. java cpu_Java High CPU故障排除指南–第1部分

    java cpu 本文是该系列的第1部分,它将为您提供有关如何进行故障排除和识别Java高CPU问题根本原因的综合指南. 本指南也适用于独立的Java程序,但旨在帮助涉及Java EE企业日常生产支持 ...

  7. Java High CPU故障排除指南–第1部分

    本文是该系列的第1部分,它将为您提供有关如何进行故障排除和识别Java高CPU问题根本原因的综合指南. 该指南也适用于独立的Java程序,但旨在帮助涉及Java EE企业日常生产支持的个人. 它还将包 ...

  8. MacBook键盘无法正常工作?故障排除指南

    MacBook拥有豪华的外观和一些永不褪色的惊人功能.迄今为止,苹果公司已经对所有Mac机型获得了足够的信任,但是最终,它是一个系统,如果不是软件,那么硬件中就会出现一些问题.许多Mac用户面临的最常 ...

  9. [Java故障排除指南- JDK11-学习笔记]-3-诊断工具jcmd

    目录 3 诊断工具jcmd 3.1 简介 3.2 jcmd 有用命令 3.3 使用 jcmd 进行故障排除 3 诊断工具jcmd 3.1 简介 该jcmd实用程序用于向 JVM 发送诊断命令请求,这些 ...

最新文章

  1. 学会这21条,你离Vim大神就不远了
  2. Django1.11 扩展User属性增加头像上传功能
  3. centos08-Linux服务器上发布java项目
  4. U3D 动态创建Prefab的多个实例
  5. android SharedPreferences的用法
  6. C#面向对象15 多态
  7. SpringBoot2.x填坑(二):elastic search 报错{error:{root_cause:[{type:index_not_found_exception,...
  8. 台达伺服B2 调机杂说
  9. CentOS修改tomcat端口
  10. otsu阈值分割算法原理_OpenCV学习30--阈值分割的OTSU算法
  11. 朴实无华,25个常用Matplotlib图的Python模板代码
  12. 【浏览器强制360网页导航】360导航被强制设成首页如何取消?
  13. 如何在水经注微图中加载地形地貌图进行道路设计
  14. 如何用ChemDraw Prime 绘制任意弧线箭头
  15. openCV+VS2010结合+正确运行图片
  16. tplogin 服务器未响应,为什么tplogin.cn老是域名解析错误
  17. windows 任务相关 删除任务
  18. PodfileKit将github上常见的iOS(Swift)第三方框架进行了汇总,并且将框架进行了分类,为用户管理第三方框架提供了方便。
  19. 2020年ui设计师就业前景怎么样?2020ui设计师的缺口大吗
  20. 大众点评app数据采集接口

热门文章

  1. 为智能手机VR体验而生,ARM公布最新处理器架构
  2. 如何搭建并使用便携式 4G/LTE 伪基站研究移动安全
  3. 为VSFTP用户指定登录后的目录.原创测试通过.
  4. LED音乐频谱之输出数据处理
  5. REDIS的几个测试结果
  6. java排序——插入排序
  7. 仿赶集网二手物品页面左侧导航
  8. 如何使用VMware Converter进行P2V热迁移
  9. python中rfind函数_Python rfind()方法
  10. 麦克风阵列降噪_黄鹂智声降噪耳机E100u,与喧嚣说再见