码迷,mamicode.com
首页 > 数据库 > 详细

CMSDB内存告警

时间:2017-10-13 12:48:09      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:内存告警

一、问题描述

2017年国庆假期期间收到cmsdb内存告警,说内存使用率已经超过85%

二、问题分析

1、登录cmsdb服务器,查看哪些进程使用内存最多,发现内存使用最多也就才48M,如下图

技术分享

  2、那大量的内存哪里去了,又通过free –m查看具体的内存使用,发现剩余只有164M,而cached则使用了18607M

技术分享

3、为什么cached使用这么多内存,通过cat/proc/meminfo查看详细的内存使用情况,发现Inactive(file)占用大量的内存,即不活动的内存,linux系统内存回收就是从此地方回收内存,Inactive(file)很大,说明系统回收的时候,可以一下子回收很多内存

技术分享

 

注:LRU listLinux kernel的内存页面回收算法(PageFrame Reclaiming Algorithm)所使用的数据结构,LRULeast Recently Used的缩写词,这个算法的核心思想是:回收的页面应该是最近使用得最少的,为了实现这个目标,最理想的情况是每个页面都有一个年龄项,用于记录最近一次访问页面的时间,可惜x86 CPU硬件并不支持这个特性,x86 CPU只能做到在访问页面时设置一个标志位Access Bit,无法记录时间,所以Linux Kernel使用了一个折衷的方法——它采用了LRU list列表,把刚访问过的页面放在列首,越接近列尾的就是越长时间未访问过的页面,这样,虽然不能记录访问时间,但利用页面在LRU list中的相对位置也可以轻松找到年龄最长的页面。Linux kernel设计了两种LRU list: active list  inactivelist, 刚访问过的页面放进active list,长时间未访问过的页面放进inactive list,这样从inactive list回收页面就变得简单了。内核线程kswapd会周期性地把active list中符合条件的页面移到inactive list中,这项转移工作是由refill_inactive_zone()完成的。

三、解决步骤

清系统缓存:

#echo 1 >/proc/sys/vm/drop_caches 清理页缓存

#echo 2 >/proc/sys/vm/drop_caches 清理文件缓存

#echo 3 >/proc/sys/vm/drop_caches 清理也缓存和文件缓存

 

四、总结与建议

1、切记,操作上面步骤时,一定要通过sync将内存中数据同步到磁盘中,否则有可能丢失数据


本文出自 “会飞的鱼” 博客,请务必保留此出处http://wstonge.blog.51cto.com/1598339/1971966

CMSDB内存告警

标签:内存告警

原文地址:http://wstonge.blog.51cto.com/1598339/1971966

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!