博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux之 手动释放内存
阅读量:6983 次
发布时间:2019-06-27

本文共 1356 字,大约阅读时间需要 4 分钟。

我们在进程中要怎样去描述一个文件呢?我们用目录项(dentry)和索引节点(inode)。它们的定义如下:

所谓"文件", 就是按一定的形式存储在介质上的信息,所以一个文件其实包含了两方面的信息,一是存储的数据本身,二是有关该文件的组织和管理的信息。在内存中, 每个文件都有一个dentry(目录项)和inode(索引节点)结构。

dentry记录着文件名,上级目录等信息,正是它形成了我们所看到的树状结构;而有关该文件的组织和管理的信息主要存放inode里面,它记录着文件在存储介质上的位置与分布。同时dentry->d_inode指向相应的inode结构。dentry与inode是多对一的关系,因为有可能一个文件有好几个文件名(硬链接, hard link)

inode代表的是物理意义上的文件,通过inode可以得到一个数组,这个数组记录了文件内容的位置,如该文件位于硬盘的第3,8,10块,那么这个数组的内容就是3,8,10。其索引节点号inode->i_ino,在同一个文件系统中是唯一的,内核只要根据i_ino,就可以计算出它对应的inode在介质上的位置。就硬盘来说,根据i_ino就可以计算出它对应的inode属于哪个块(block),从而找到相应的inode结构。但仅仅用inode还是无法描述出所有的文件系统,对于某一种特定的文件系统而言,比如ext3,在内存中用ext3_inode_info描述。他是一个包含inode的"容器"。

几种drop_caches的模式:

To free pagecache:

* echo 1 > /proc/sys/vm/drop_caches
To free dentries and inodes:
* echo 2 > /proc/sys/vm/drop_caches
To free pagecache, dentries and inodes:
* echo 3 > /proc/sys/vm/drop_caches
As this is a non-destructive operation, and dirty objects are notfreeable, the user should run "sync" first in order to make sure allcached objects are freed.
This tunable was added in 2.6.16.

注意:禁止生产上使用 2 、3 模式

手动清理cache(防止使用swap):

[root@testserver ~]# free -m
[root@testserver ~]# sync #强制将改变的内容立刻写入磁盘,更新超块信息
[root@testserver ~]# cat /proc/sys/vm/drop_caches
0
[root@testserver ~]# echo 1 > /proc/sys/vm/drop_caches
[root@testserver ~]# free -m

补充:大页内存可以避免使用swap

转载于:https://www.cnblogs.com/andy6/p/7489829.html

你可能感兴趣的文章
(三) Graphivz 基本图片类型
查看>>
ubuntu 升级过程中断电时遇到的问题总汇
查看>>
Netscaler基于policy的log action
查看>>
删除sql server 表中的重复数据!
查看>>
水仙花数
查看>>
初识set集合
查看>>
怎么寻回调整分区后盘符丢失的数据
查看>>
警惕!MySQL成数据勒索新目标
查看>>
linux系统学习第一天
查看>>
eclipse的安卓开发插件『ADT』在线安装不成功的解决方案
查看>>
第12章,网络管理(下)网络基础配置
查看>>
DTU是什么 DTU种类及应用领域分析
查看>>
基于Zynq-7000高速数据采集解决方案
查看>>
【VMware vSAN 6.6】5.2.运行状况:我们有软硬件项目解决方案
查看>>
细数iOS上的那些安全防护
查看>>
tar命令常用参数解释
查看>>
SourceTree跳过Atlassian账号,免登陆,跳过初始设置
查看>>
刷屏的海底捞超级APP究竟是怎样与阿里云合作的
查看>>
redhat linux 访问控制
查看>>
DNS--1--基础概念
查看>>