我的linux系统SSD占用总是100%怎么办?
Posted inter_peng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我的linux系统SSD占用总是100%怎么办?相关的知识,希望对你有一定的参考价值。
本文由Markdown语法编辑器编辑完成。
1. 前言:
你有没有这样的经历,每当要下载一个文件时,就会提示你的磁盘空间已经不太够用了。通过df -h查看,可以看到SSD的占用已经达到了100%.
很遗憾,当时解决问题心急,没有把占用100%的场景截图。这里的SSD占用,是解决了这个问题之后,占用一下子就降到了65%左右,非常开心。
虽然系统上还挂载了一块很大的硬盘,但是毕竟操作系统在SSD上面。因此系统的一些功能会受到影响,比如剪贴板就时灵时不灵的。
能够想到的,占用较大空间的文件,一般是:
- 软件的安装程序;
- 软件的一些缓存;
- 数据和图像;
- docker的image;
- 虚拟环境venv;
- nodule_modules
- java的.m2
等等。
当然以上列举的这些,虽然占空间很大,但有一些是必需的。即使删除,下载再使用软件或开发环境的时候,还需要再次安装。因此,清理这些并无法达到目的。
2. 解决方案
通过向同事请教,发现我之前在查询磁盘占用时,方法不对。
我一般都是在 ~ 目录下,运行ncdu来分析该路径下的文件大小。而 ~等同于 /home/user的目录。
当时在检查这个目录的时候,其实也觉得比较奇怪。因此将~目录下的排名前几的大文件加起来,距离SSD的空间还差很多。但是,苦于不知道那些隐蔽的大文件在哪里。
而实际上,SSD的路径为 /.
因此,在分析时,应该采用: sudo ncdu -x /
运行该条指令后,就像发现了新大陆一样,果然发现了很多过去没有发现的,但是占很大空间的文件。
从运行结果看,/home目录其实不是占SSD空间的大户。真正占用空间最大的是var目录。
进入/var目录,最大的占用是/var/lib目录。
再进入/var/lib, 发现占用空间最大的是docker目录。
docker目录下主要分为: volumes, overlay2, containers.
进入containers目录后,可以看到很多很多的以hash值命名的文件。进入其中一个文件,可以看到里面的目录。
每一个这样的文件夹中,占用最大的其实就是json格式的log文件。
之前我就是忽略掉了这个log文件。
这里容易忽略的一点是:如果在docker-compose.yml中,未对docker的日志文件大小做限制,有可能会导致日志文件持续增大,直至将自己的SSD完全占满。
我之前的SSD被占满,也是由于我在本地启动的一个dcm4chee的镜像,在docker-compose.yml中未对日志文件大小进行限制,导致它的日志在持续增长,导致SSD的空间被占用,无法再存放任何真正有用的文件。
有了这个经验,又陆续看了一下排在前几名的文件,绝大多数都是日志文件。
清理结束后,一下子就空出了50多G的空间。心里面非常的兴奋,解决了遗留很久的问题。
以上是关于我的linux系统SSD占用总是100%怎么办?的主要内容,如果未能解决你的问题,请参考以下文章