linux 释放进程res_linux内存查看及释放

查看内存

常用的查看内存工具有:top,ps,free,/proc/meminfo,/proc/$PID/status等,一般都指定了虚拟内存占用情况,但ps或/proc/$PID/status中RSS或RSZ指定的是实际内存大小。

1)free

root:~# freetotal usedfreeshared buffers

Mem:123776 71712 52064 0 8036

-/+ buffers: 63676 60100Swap:0 0 0

其中第一行用全局角度描述系统使用的内存状况:

total——总物理内存

used——已使用内存,一般情况这个值会比较大,因为这个值包括了cache+应用程序使用的内存

free——完全未被使用的内存

shared——应用程序共享内存

buffers——缓存,主要用于目录方面,inode值等(ls大目录可看到这个值增加)

cached——缓存,用于已打开的文件,有些系统中包含进buffers

note:

total=used+free

used=buffers+cached (maybe add shared also)

第二行描述应用程序的内存使用:

前个值表示-buffers/cache——应用程序使用的内存大小,used减去缓存值

后个值表示+buffers/cache——所有可供应用程序使用的内存大小,free加上缓存值

note:

-buffers/cache=used-buffers-cached

+buffers/cache=free+buffers+cached

第三行表示swap的使用:

used——已使用

free——未使用

2)top

PID:进程的ID

USER:进程所有者

PR:进程的优先级别,越小越优先被执行

NInice:值

VIRT:进程占用的虚拟内存

RES:进程占用的物理内存

SHR:进程使用的共享内存

S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数

%CPU:进程占用CPU的使用率

%MEM:进程使用的物理内存和总内存的百分比

TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。

COMMAND:进程启动命令名称

释放缓存

Linux系统的缓存机制是相当先进的,他会针对dentry(用于VFS,加速文件路径名到inode的转换)、Buffer Cache(针对磁盘块的读写)和Page Cache(针对文件inode的读写)进行缓存操作。但是在进行了大量文件操作之后,缓存会把内存资源基本用光。但实际上我们文件操作已经完成,这部分缓存已经用不到了。这个时候,我们难道只能眼睁睁的看着缓存把内存空间占据掉么?

所以,我们还是有必要来手动进行Linux下释放内存的操作,其实也就是释放缓存的操作了。

要达到释放缓存的目的,我们首先需要了解下关键的配置文件/proc/sys/vm/drop_caches。这个文件中记录了缓存释放的参数,默认值为0,也就是不释放缓存。他的值可以为0~3之间的任意数字,代表着不同的含义:

0 – 不释放

1 – 释放页缓存

2 – 释放dentries和inodes

3 – 释放所有缓存

知道了参数后,我们就可以根据我们的需要,使用下面的指令来进行操作。

首先我们需要使用sync指令,将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件。否则在释放缓存的过程中,可能会丢失未保存的文件。

#sync

接下来,我们需要将需要的参数写进/proc/sys/vm/drop_caches文件中,比如我们需要释放所有缓存,就输入下面的命令:

#echo 3 > /proc/sys/vm/drop_caches

此指令输入后会立即生效,可以查询现在的可用内存明显的变多了。

要查询当前缓存释放的参数,可以输入下面的指令:

#cat /proc/sys/vm/drop_caches

linux内核文档对此描述如下:

drop_caches

Writing tothis will cause the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free.

Tofreepagecache:

echo1 > /proc/sys/vm/drop_caches

Tofreedentries and inodes:

echo2 > /proc/sys/vm/drop_caches

Tofreepagecache, dentries and inodes:

echo3 > /proc/sys/vm/drop_caches

Asthis is a non-destructive operation and dirty objects are not freeable, the user should run `sync'first.

参考:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/340261.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js读取外部json指定字段值完整代码_前端工程化 剖析npm的包管理机制(完整版)...

导读 现如今,前端开发的同学已经离不开 npm 这个包管理工具,其优秀的包版本管理机制承载了整个繁荣发展的NodeJS社区,理解其内部机制非常有利于加深我们对模块开发的理解、各项前端工程化的配置以加快我们排查问题(相信不少同学收到过各种依赖…

计算机专业带给我们的启示,一次电脑网络调查带给我的启示

一次电脑网络调查带给我的启示当今世界,鲜有人不会上网。而许多孩子,也迷上了电脑。就此,我对周围的12个朋友做了调查。其中3人上网玩QQ,8人玩摩尔庄园,仅1人玩单机游戏。很显然,网络已深入孩子们的生活。做…

Apache Derby数据库JVM安全策略

抽象 我已经发布了许多有关Derby的博客: Derby数据库备份 同一主机上的多个Derby网络服务器 Apache Derby数据库用户和权限 与Maven和内存中Derby数据库的集成测试 这本不打算是一个系列。 但是多年来,我越来越多地使用Derby。 我开始使用Derby作为…

大师兄科研网vasp_怎样知道一名研究生有没有科研潜力?

原答案回答在这里了。怎么知道一名研究生有没有科研潜力?​www.zhihu.com大家熟悉的“员工执行力”这个词,其实是个伪命题,因为员工的执行力=领导的领导能力,领导方法得当,每个人都有很强的执行力。那么“学…

西交计算机专业912一样吗,西安交大912(总分404 专业课133分)经验总结

2019年西交912计算机基础经验总结(总分404 政治:68 英语二:84 数学二:119 专业课:133)先说一下个人情况吧。本人2017年毕业于西安电子科技大学计算机科学与技术专业,毕业以后就职于一家国企,奈何不安分&…

分行打印列表python_#python版一行内容分行输出

python版一行内容分行输出 1.[代码][Python]代码236091543 #python版一行内容分行输出 #依山居 18:14 2015/11/4 #题目来源 http://www.bathome.net/thread-1454-1-1.html a="aA1一bB2二cC3三dD4四eE5五fF6六gG7七hH8八iI9九" """ 分行输出为: abcdef…

机箱硬盘指示灯不亮_安钛克DF600 FLUX机箱:FLUX平台第一款机箱,为全民电竞热“降温”...

随着夏天的到来,电脑对散热的要求越来越高,特别是对于希望游戏的电竞玩家,不久前China Joy全球电竞大会的落幕,“全民电竞”这个概念再一次深入人心,而一名电脑主机电竞玩家,势必需要一款散热效果更好的机箱…

java ee maven_针对新手的Java EE7和Maven项目–第7部分

java ee maven从前面的部分恢复 第1 部分 , 第2 部分 , 第3 部分 , 第4 部分 , 第5 部分 , 第6部分 在上一篇文章(第6章)中,我们发现了如何使用Arquillian和Wildfly 8.1进行JPA2域模…

法在计算机课程中的应用,任务驱动法在计算机办公课程中的应用

摘 要:一体化教学模式中的任务驱动法是建立在建构主义教育理论基础上的一种教学法。笔者结合任务驱动法在Word2010教学中的实施过程,对如何应用任务驱动法展开论述。关键词:任务驱动法 计算机办公课程 具体应用任务驱动法就是在教学过程中&am…

链表node中保存的是什么_Redis源码解析一 --链表结构

Redis源码剖析—链表结构1. redis中的链表在redis中链表的应用非常广泛,例如列表键的底层实现之一就是链表。而且,在redis中的链表结构被实现成为双向链表,因此,在头部和尾部进行的操作就会非常快。通过列表键的命令感受一下双向链…

python数据分析方法和命令_《利用Python进行数据分析》 —— (1)

《利用Python进行数据分析》 —— (1) Python的学习需要自主探索各种类型,函数和方法的文档。 2.1 Python解释器 在IPython(Jupyter Qtconsole)上,可以通过%run命令执行文件中的代码 In [16]: %run hellow.py 1,2,3 10…

JDK 15中的确切绝对整数

JDK 15 Early Access Build b18向Math和StrictMath类引入了新方法,这些方法将在提供的值超出方法所支持的范围时抛出ArithmeticException ,而不会发生溢出。 这些方法为Java中的“绝对值”概念带来了Math.addExact , Math.subtractExact和Mat…

浙江金融职业学院计算机一级,浙江金融职业学院全景-360度,720度,高清全景地图-expoon网展...

浙江金融职业学院基本信息:院校类型:财经类所在地:浙江学历层次:专科招办电话:0571-86739200、86739000、86739100电子邮箱 : zjfczs2008126.com通讯地址 : 浙江杭州市下沙高教园区东区学源街118号学校简介&#xff1a…

用python找对象_还在单身的你 Python教你如何脱单

程序员有女朋友?new一个就行。Python只要内存够,想new多少个对象都不是问题。由于行业环境的原因,程序员单身的确实多,这也是程序员的世纪难题。今天,不是给大家发对象,只教大家方法。今天教大家怎么用Pyth…

系统页面升级系统中_中交出行通勤班线系统全新升级!页面亮点功能说明

最近,中交出行上线了全新版本的通勤班线系统,乘客端定制班线首页及购票流程界面全新改版,车企后台也做了优化。一起来看看有哪些亮点吧!首页、搜索结果页等,已绑定微信的老用户,无感知的自动登录。通勤班线…

医疗保健数据接口_应用的大数据:医疗保健的经济学

医疗保健数据接口这次我的标题不太挑衅,因为我的上一篇博客文章(http://brianoneill.blogspot.com/2014/04/big-data-fixes-obamacare.html)显然煽动了政治大战。 在本文中,我希望通过详细介绍大数据如何以无党派的方式帮助我们的…

计算机基础 在线测试,计算机基础知识在线测试答案.doc

文档介绍:节以下不属于计算机外部设备的是。蕿A.输入设备羇B.中央处理器和主存储器袅C.输出设备蝿D.外存储器芈答案关键:B肇题目2of100肁计算机系统中运行的程序、数据及相应的文档的集合称为。蒁A.主机肆B.软件系统***C.系统软件蒂D.应用软件衿答案关键:B腿题目3of…

mysql log_来吧,了解下mysql有哪些log

概述mysql里面有很多log,比如用于主从同步的bin_log,防止数据丢失的redo_log,慢查询日志slow_log等等redo logInnoDB有buffer pool(简称bp)。bp是数据库页面的缓存,对InnoDB的任何修改操作都会首先在bp的page上进行,然…

为什么jupyterlab运行程序的时候会自动停止_气象人的JupyterLab

上两篇文章Jupyterlab安装配置教程Jupyter多用户配置中讲了Jupyter的主要部署方法,老实说,对新手很不友好,我也不想再经历一次这样的过程,尤其是Basemap的安装。所以,咱直接打包个镜像吧。不得不说Docker真是个拯救了无…

计算机应用管理试题,学习管理系统中计算机应用试卷试题及答案.docx

★精品文档★管理系统中计算机应用试题及答案计算机应用是研究计算机应用于各个领域的理论、方法、技术和系统等,是计算机学科与其他学科相结合的边缘学科。下面给大家带来管理系统中计算机应用试题及答案,欢迎大家阅读。管理系统中计算机应用试题及答案…