RHEL 7 下内存管理小记
RHEL 7 下内存管理小记
一、Overview
众所周知,在 Linux 操作系统中有三个目录非常有趣好玩。
- /dev
- /run
- /proc
一个个解释下,/dev 用于对特殊设备(BTW:特殊设备可用 touch 生成)进行文件化(Store data in flat text files);/run 用于内存目录化,很有名的例子就是 radius nosql 中的内存读写持久化。其实关于 /run 我一直很好奇银行的 UNIX 是不是就利用这个技术,从而实现维护时添加足够内存待维护完毕系统再写入 SQL 中。
最后,铛铛铛。
/proc 是一个虚拟文件系统,我们可以通过对它的读写操作做为与 kernel 实体间进行通信的一种手段。
那这次我们简单讲讲 /proc/sys/vm/drop_caches 文件
二、Resolution procfs
清空 pagecache:
sync
echo 1 > /proc/sys/vm/drop_caches
或者:
sync
sysctl -w vm.drop_caches=1
清空 dentries 和 inodes:
sync
echo 2 > /proc/sys/vm/drop_caches
或者:
sync
sysctl -w vm.drop_caches=2
清空所有缓存(pagecache、dentries 和 inodes):
sync
echo 3 > /proc/sys/vm/drop_caches
或者:
sync
sysctl -w vm.drop_caches=3
三、Source
sync
手动执行sync命令(描述:sync 命令运行 sync 子例程。如果必须停止系统,则运行sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件)
sysctl
针对 /proc 进行操作的简易方法,不用再手动修改 /proc 目录(就好比 windows 中组策略与注册表的区别,当然啦 Linux 并没有注册表的概念)。BTW:即便使用 sysctl -w 命令进行操作,重启后会依然会失效。若希望持久保存应写入 /etc/sysctl.conf 文件,还可以使用 sysctl -p 立即运行生效。
当发生内存不足、应用获取不到可用内存、OOM错误等问题时,还是更应该去分析应用方面的原因,如用户量太大导致内存不足、发生应用内存溢出等情况,否则,清空buffer,强制腾出free的大小,可能只是把问题给暂时屏蔽了。——摘自:linuxの飘扬
四、Reference material
https://zh.wikipedia.org/wiki/Procfs
http://blog.csdn.net/sky_qing/article/details/8988461
RHEL 7 下内存管理小记的更多相关文章
- 八.OC基础加强--1.autorelease的用法 2.ARC下内存管理 3.分类(category)4.block的学习
1.autorelease的用法 1.自动释放池及autorelease介绍 (1)在iOS程序运行过程中,会创建无数个池子,这些池子都是以栈结构(先进后出)存在的. (2)当一个对象调用auto ...
- C#下内存管理--垃圾收集
章节安排 内存管理简介 垃圾回收机制 性能问题 C#下非托管资源的处理 要强调的几点 References 内存管理简介 对于任何一种编程语言,内存管理都是不得不提很重要的一块内容,但可惜的是目前为止 ...
- Object-C中的内存管理小记
//错解1:内存泄露 - (void)setObj:(Object *)newObj { obj = [newObj retain]; } 当新旧对象指向不同时,执行这段代码后,obj会指向另一个对象 ...
- 一篇关于arc下内存管理的老文章,包含各种冷门修饰符(关于内存),写的较好,mark
http://blog.csdn.net/zhibudefeng/article/details/7746201
- glibc下的内存管理
在解码过程中我们也遇到了类似的问题,第一次解码的音频比较大60s,耗了3G的内存,reset之后内存并没有退还给操作系统,第二次即使解一个10s的音频 几周前我曾提到,我被项目组分配去做了一些探究li ...
- 06OC之内存管理
在高级语言中,例如C#是通过垃圾回收机制(GC)来解决这个问题,但是在OC并没有类似的垃圾回收机制,因此必须由程序员手动去维护.今天就讲讲OC中的内存管理: 一.内存管理原理 在Xcode4.2之后的 ...
- iOS经典面试题总结--内存管理
iOS经典面试题总结--内存管理 内存管理 1.什么是ARC? ARC是automatic reference counting自动引用计数,在程序编译时自动加入retain/release.在对象被 ...
- iOS内存管理编程指南
iOS 内存管理 目录[-] 一:基本原则 二:成员变量的内存管理 三:容器对象与内存管理 四:稀缺资源的管理 五:AutoRelease 六:其他注意事项 iOS下内存管理的基本思想就是引用计数,通 ...
- Windows内存管理和linux内存管理
windows内存管理 windows 内存管理方式主要分为:页式管理,段式管理,段页式管理. 页式管理的基本原理是将各进程的虚拟空间划分为若干个长度相等的页:页式管理把内存空间按照页的大小划分成片或 ...
随机推荐
- Bean标签的常用属性
-----------------siwuxie095 Bean 标签的常用属性 1.id 属性:Bean 的唯一标识名,必须以字母开头,且不能 包含特殊字符 2.class 属性:用来定义类的全限定 ...
- 创建和运行Java项目
---------siwuxie095 首先在左侧的工程管理面板 Package Explorer 中,右键->New->Java Project ...
- xen虚拟机管理命令
#xen虚拟机管理命令 xm list:所有已知的虚拟机列表 xm create:启动一个非托管的虚拟机 xm top:提供所有虚拟机的状态概貌 xm console:打开控制台管理虚拟机 xm ne ...
- DBA的工作职责和每日工作
DBA一般职责 1.安装和升级数据库服务器,以及应用程序工具构建和配置网络环境. 2.熟悉数据库系统的存储结构预测未来的存储需求,制订数据库的存储方案. 3.根据开发人员设计的应用系统需求创建数据库存 ...
- using namespace cv
在OpenCV中使用 using namespace cv 的作用: 在使用#include语句包含相应头文件后,使用下面语句即可包含相应的Opencv命名空间 using namespace cv; ...
- 【新手指南】App原型设计:如何快速实现这6种交互效果?
做App原型设计,那么页面切换.进度条.页面滚动.图片轮播,下拉菜单,搜索框这些交互效果必不可少.如何简单快速地实现这些效果呢?以下小编根据经验为大家提供了一些简单的设计方法,以供参考. 1.页面跳转 ...
- CodeForces 687A NP-Hard Problem (二分图)
题意:给定 n 条边,然后让你把它分成两组,每组都有所有边的一个端点. 析:一开始我是先判定环,以为就不能成立,其实不是这样的,有环也行.用dfs进行搜索,并标记每一个端点,如果标记过并且和以前不一样 ...
- CentOS 7下面配置静态IP
CentOS 7.0系统是一个很新的版本哦,很多朋友都不知道CentOS 7.0系统是怎么去安装配置的哦,因为centos7.0与以前版本是有很大的改进哦. 说明:截止目前CentOS 7.x最新版本 ...
- 20169205 2016-2017-2 实验二nmap的使用与分析
20169205 2016-2017-2 实验二Nmap的使用与分析 实验所用知识总结 Nmap扫描基础 当用户对Nmap工具了解后,即可使用该工具实施扫描.通过上一章的介绍,用户可知Nmap工具可以 ...
- java并发编程实战:第二章----线程安全性
一个对象是否需要是线程安全的取决于它是否被多个线程访问. 当多个线程访问同一个可变状态量时如果没有使用正确的同步规则,就有可能出错.解决办法: 不在线程之间共享该变量 将状态变量修改为不可变的 在访问 ...