RHEL 7 下内存管理小记
2017-10-29 11:58
183 查看
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/Procfshttp://blog.csdn.net/sky_qing/article/details/8988461
相关文章推荐
- RHEL6.4 xclock安装小记
- Object-C中的内存管理小记
- 内存管理学习小记
- 内存管理学习小记(1)
- RHEL6.4 xclock安装小记
- IOS开发小记-内存管理
- RHEL 集群(RHCS)配置小记 -- 文档记录
- swap内存管理小记
- 蓝懿iOS培训日志6 自习日小记和复习内存管理
- 探秘Java虚拟机——内存管理与垃圾回收
- 关于CentOS/RHEL 7.x的yum组安装错误的解决方案
- 5月26开源沙龙活动小记
- IOS 5编程 内存管理 ARC技术概述
- 2015-11-19-正则表达式使用小记
- C开发经验4:内存管理以及数据类型
- IOS 5编程 内存管理 ARC技术概述
- Linux的内存管理
- c#写的虚拟机 内存管理
- RHEL5.7下的LAMP服务器配置
- Android内存管理