IT门户, 中国互联网人工智能物联网行业资讯平台--公众IT

当前位置:公众IT > 技术文章 >

新闻来源:互联网资料整理       发布时间:2023/4/5 23:11:01       共计:4621 浏览

受内存保护。

平常当我们使用free 查看内存使用的情况,看到cache占比很大,一般都认为cache的都是可被系统使用的。事实上,cache的部分内存是不会被自动释放的。

以下所列是Linux系统内存cache的几种不会被释放的情况。

当cache作为文件缓存被释放的时候会引发IO变高,这是cache加快文件访问速度所要付出的成本。

tmpfs(Linux提供一种“临时”文件系统)中存储的文件会占用cache空间,除非文件删除否则这个cache不会被自动释放。

使用shmget方式申请的共享内存会占用cache空间,除非共享内存被ipcrm或者shmdt,否则相关的cache空间都不会被自动释放。

使用mmap(将一个文件映射进进程的虚拟内存地址,之后就可以通过操作内存的方式对文件的内容进行操作)方法申请的MAP_SHARED标志的内存会占用cache空间,除非进程将这段内存munmap,否则相关的cache空间都不会被自动释放。

实际上shmget、mmap的共享内存,在内核层都是通过tmpfs实现的,tmpfs实现的存储用的都是cache。

内存的使用是一件很复杂的事情,cache是不能当做空闲空间使用的,深究内存之道,任重而道远。

版权说明:
本网站凡注明“公众IT 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
您可以扫描右侧微信二维码联系我们。
·上一条: | ·下一条:
同类资讯
网站首页 关于我们 联系我们 合作联系 会员说明 新闻投稿 隐私协议 网站地图