cannot create temp file for here-document: No space left on device(内存爆满)
首先说明一般内存占满的情况:
- /tmp目录满了(/tmp/tmp/这个目录下一般存着coredump文件;一般重启会删除;或者3天后会自动清除;但是如果短时间内太多临时文件占满内存时,就需要手动删除/tmp/tmp)
- /var/log目录满了(存放日志文件,当日志太多时,没有及时清理也会导致)
- /media/nvme挂载满了(需要卸载挂载,再重新挂载到硬盘;一般是/media/nvme目录没有成功挂载到硬盘,而使用了Debian系统自带的内存满了导致)
说正事
今天发现软件运行失败,于是查看原因,在使用cd自动补全文件名的时候,发现报错:
-bash: cannot create temp file for here-document: No space left on device
使用df命令查看系统内存占用情况,大概意思是没有内存空间去创建临时文件了:
使用du命令查看目录内存占用
使用du -sh命令,查看到底是哪一个目录占用内存这么多!!!!
//首先在/tmp目录下查看每个文件内存占用 du -h //查看/tmp文件夹的内存总占用 du -sh /tmp
发现是/tmp/tmp临时文件目录下占用了6G内存(上面图片是我清理完后,所以占用小;没清理前是占用了6G),此文件夹存着一些打印信息、coredump文件,一般是软件产生;
解决方案:
将/tmp/下占用最大的tmp删除即可(由于我们需要找原因,所以需要分析/tmp/tmp文件夹里的临时文件到底是什么)
建议:
先把/tmp/目录下所产生的coredump文件分析一遍(gdb executable_file coredump_file),为什么会产生、哪里产生的,这样就可以避免下次发生同样情况!
还有一种情况是/media/nvme满了,是通过挂载的卸载解决的。/media/nvme/videos一般是这个目录下占用太多,使用了系统的本身内存,这是因为没有成功挂载到硬盘上,所以需要重新挂载硬盘。
标签:
linux
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库