关于linux内存cached过高释放一例

今天在做zabbix硬件监控的时候,老是出现段错误的提示,仔细检查发现原来是是不是我的内存不够了呢:

参数说明:

total : 物理内存的总大小

used :已经使用的内容

shared:共享的内存大小

buffers:缓冲区内存:(磁盘块的读写频繁,linux内存机制做缓冲池)

cached:也是缓冲区内存(主要是在文件读写频繁的时候对文件进行缓存)

一般我们主要看free,和最后一行 buffers/cache:

具体参数可以参考,linux 内存机制。我的机器上面是做nagios监控,和图片备份,每天晚上12点会有rsync的任务执行,同步图片到这台机器上面。应该是这个问题了,频繁的读写文件,然后触发了Linxu的内存机制,系统任务频繁的读写文件,当程序停止之后。系统内存没有释放,而是当做cache的形式存在,方便下次调取。这样性能应该有所加强,但是像今天这种我又不需要,那么我就只能将他释放了:

执行操作:

执行命令完成之后我们可以echo 0 修改回来。

可以看到已经释放了很多内存了。

总结:我们有时候经常会遇到这个问题,尤其是Mysql服务器,经常buffers,经常会占据很多的内存,因为mysql写入操作是很频繁了,这个时候我们不用去手动释放内存,允许linux自带的内存去管理,可想而知当我们缓冲区有内存了,下次读写是不是很快了呢。今天实在暂用太多了,而且rsync也是晚上,才启动,关闭就不用浪费那么多资源

时间: 2024-08-29 20:31:29

关于linux内存cached过高释放一例的相关文章

free命令-linux内存cached释放

在工作中经常会遇到Linux内存很大,却被cached占了大部分的内存空间,导致linux开始启用swap的情况. 下图就是这样情况: 总内存有128G,cached占用了108G,造成系统不得不使用swap内存,而导致性能下降,速度变慢 buffer,cached的作用: cached主要负责缓存文件使用, 日志文件过大造成cached区内存增大把内存占用完 .     Free中的buffer和cache:(它们都是占用内存):     buffer : 作为buffer cache的内存,

Linux内存机制以及手动释放swap和内存

哇,感觉好久没更新了,今天我们来谈谈Linux的内存机制. 首先我们理一下概念 一.什么是linux的内存机制? 我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概念. 物理内存就是系统硬件提供的内存大小,是真正的内存,相对于物理内存,在linux下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换

Linux内存描述之高端内存--Linux内存管理(五)

1. 内核空间和用户空间 过去,CPU的地址总线只有32位, 32的地址总线无论是从逻辑上还是从物理上都只能描述4G的地址空间(232=4Gbit),在物理上理论上最多拥有4G内存(除了IO地址空间,实际内存容量小于4G),逻辑空间也只能描述4G的线性地址空间. 为了合理的利用逻辑4G空间,Linux采用了3:1的策略,即内核占用1G的线性地址空间,用户占用3G的线性地址空间.所以用户进程的地址范围从0~3G,内核地址范围从3G~4G,也就是说,内核空间只有1G的逻辑线性地址空间. 把内核空间和

linux内存管理及手动释放机制

inux系统中查看内存状态一般都会用到free linux的free命令中,cached和buffers的区别 Free Mem:表示物理内存统计 -/+ buffers/cached:表示物理内存的缓存统计 Swap:表示硬盘上交换分区的使用情况 系统的总物理内存:8098060 8Gb,但系统当前真正可用的内存并不是第一行free 标记的6054972Kb,它仅代表未被分配的内存. 我们使用total1.used1.free1.used2.free2 等名称来代表上面统计数据的各值,1.2

linux内存占用过高原因

今天服务器装了个lnmp环境,看了下那个探针, 发现内存占用97%,瞬间吓尿了. google了半天才发现,一般的解释是Linux系统下有一种思想,内存不用白不用,占用了就不释放,听上去有点道理,但如果我一定要知道应用程序还能有多少内存可用呢? Linux下查看内存还有一个更方便的命令,free: [[email protected] ~]# free -m              total       used       free     shared    buffers     ca

linux内存占用过高

top top -H -p 28857jstack 28857 > a.txtjstack -F pid 如果是web应用,可以继续打印线程的堆栈信息+++++++++ strace -p 24167 通过这3步基本可以找出什么原因导致java进程占用那么高CPU资源. 将需要的线程ID转换为16进制格式:printf "%x\n" 2967973ef最后打印线程的堆栈信息:jstack 29679|grep 73ef -A 30

linux内存管理概述

其中介绍了虚拟内存的机制以及mmap系统调用的实现.mmap允许直接将设备内存映射到用户进程的地址空间中.物理内存的管理,包括缓存的分配及回收,请页机制,交换空间等. 1)交换模块(swap) 这个模块负责控制内存内容的换入换出,它通过替换机制,使得物理内存的页框(RAM页)中保留有效的逻辑页,即从主存中淘汰最近没被访问的逻辑页,保存近来访问过的逻辑页.该模块实现的源程序分别是: page_io.c的主要函数功能是读写交换文件. swap_state.c的主要函数功能是修改交换高速缓存(swap

浅谈Linux 内存中的Cache: buffers 与 cached

Linux 内存中的Cache,真的能被回收么? 您真的了解Linux的free命令么? 在Linux系统中,我们经常用free命令来查看系统内存的使用状态.在一个RHEL6的系统上,free命令的显示内容大概是这样一个状态: 这里的默认显示单位是kb,我的服务器是128G内存,所以数字显得比较大.这个命令几乎是每一个使用过Linux的人必会的命令,但越是这样的命令,似乎真正明白的人越少(我是说比例越少). 一般情况下,对此命令输出的理解可以分这几个层次: 不了解.这样的人的第一反应是:天啊,内

为何我的LINUX服务器内存利用率很高?正确理解LINUX内存使用机制

今天有人告诉我说linux服务器上的内存快不够用了,128G的内存,马上要用光了.我吓了一跳,这台服务器上的应用现在负载很小啊,怎么利用率会很高呢.先用ZABBIX看了下,内存剩余空间还是很大的,还有117G的空余啊.然后又登陆到服务器上用再看下: [[email protected] ~]$ top top - 11:41:03 up 415 days, 1:06, 2 users, load average: 0.17, 0.12, 0.28 Tasks: 847 total, 1 runn