Linux 手工释放Linux Cache Memory
2022/4/18 7:14:06
本文主要是介绍Linux 手工释放Linux Cache Memory,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
手工释放Linux Cache Memory
为了加速操作和减少磁盘I/O,内核通常会尽可能多地缓存内存,这部分内存就是Cache Memory(缓存内存)。根据设计,包含缓存数据的页面可以按需重新用于其他用途(例如,应用程序)。
缓存内存在程序运行结束后不会自动释放。这可能会导致程序频繁读写文件后可用物理内存变得很少,必要时(比如内存确实不够用),需要主动释放缓存内存。
注意:一般情况下,是不推荐主动释放缓存内存的,除非你有非常明确的需求,比如测试程序缓存内存的使用情况,因为对同一应用程序来说,缓存内存是可用的。
释放缓存内容
可以通过修改系统控制文件/proc/sys/vm/drop_caches
释放缓存内存。
1、释放pagecache
(页面缓存)
echo 1 > /proc/sys/vm/drop_caches
2、释放reclaimable slab objects (includes dentries and inodes)(可回收slab对象(包括dentry,inode))
echo 2 > /proc/sys/vm/drop_caches
3、释放slab
对象和pagecache
echo 3 > /proc/sys/vm/drop_caches
这是一种非破坏性操作(non-destructive operation
),不会释放任何脏对象。如果要增加此操作释放的对象数量,可以在写入/proc/sys/vm/drop_cache
之前运行sync
。这将最大限度地减少系统上脏对象的数量,并创建更多待删除的候选对象。
需要注意的是/proc/sys/vm/drop_caches
不是用于控制,各种内核缓存(inodes,dentries,pagecache等等)增长的方法。当系统其它地方需要内存时,Linux内核会自动回收这些对象。
使用该文件可能引发性能问题。因为它会删除缓存对象,可能需要消耗大量的I/O和CPU才能重新创建被删除的对象,尤其是这些对象被大量使用的情况下。因此,不建议在测试或调试环境之外使用。
实践测试
# free -m total used free shared buff/cache available Mem: 7794 2373 1478 431 3942 4691 Swap: 3967 0 3967 # echo 1 > /proc/sys/vm/drop_caches # free -m total used free shared buff/cache available Mem: 7794 2373 2600 431 2821 4705 Swap: 3967 0 3967 # echo 2 > /proc/sys/vm/drop_caches # free -m total used free shared buff/cache available Mem: 7794 1635 5527 431 631 5495 Swap: 3967 0 3967 # echo 3 > /proc/sys/vm/drop_caches # free -m total used free shared buff/cache available Mem: 7794 1635 5529 431 630 5496 Swap: 3967 0 3967
参考连接
https://www.kernel.org/doc/Documentation/sysctl/vm.txt
这篇关于Linux 手工释放Linux Cache Memory的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法