Cache内存释放

网友投稿 873 2022-09-24 11:55:01

Cache内存释放

最近服务器出现内核报错,导致真机宕机,远程网络连接不上,但是虚拟机还可以正常工作。

找了一堆资料,怀疑是内存的问题??

#free -m   #结果如图

发现 cache 的值很大 从其他服务器上看200左右

因为LINUX的内核机制,一般情况下不需要特意去释放已经使用的cache。这些cache起来的内容可以增加文件以及的读写速度。 先说下free命令怎么看内存

其中第一行用全局角度描述系统使用的内存状况: total——总物理内存 used——已使用内存,一般情况这个值会比较大,因为这个值包括了cache+应用程序使用的内存 free——完全未被使用的内存 shared——应用程序共享内存 buffers——缓存,主要用于目录方面,inode值等(ls大目录可看到这个值增加) cached——缓存,用于已打开的文件 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——未使用

cache释放:

#sync

手动执行sync命令(描述:sync 命令运行 sync 子例程。如果必须停止系统,则运行sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件) 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

说明,释放前最好sync一下,防止丢数据。

查看free -h结果

一般情况下,应用在系统上稳定运行了,free值也会保持在一个稳定值的,虽然看上去可能比较小。 当发生内存不足、应用获取不到可用内存、OOM错误等问题时,还是更应该去分析应用方面的原因,如用户量太大导致内存不足、发生应用内存溢出等情况,否则,清空buffer,强制腾出free的大小,可能只是把问题给暂时屏蔽了。 我觉得,排除内存不足的情况外,除非是在软件开发阶段,需要临时清掉buffer,以判断应用的内存使用情况;或应用已经不再提供支持,即使应用对内存的时候确实有问题,而且无法避免的情况下,才考虑定时清空buffer。(可惜,这样的应用通常都是运行在老的操作系统版本上,上面的操作也解决不了)

=======================================

技术交流QQ:1359962567(↗freeda)

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:RC.SYSINIT学习
下一篇:警惕这12种保健品营销陷阱!(保健品误导消费者)
相关文章