磁盘爆满如何解决?

有时候因为磁盘爆满,导致某些服务起不来。今天我们来讲解一下Linux磁盘爆满如何解决

步骤一: 遇到磁盘空间不足的情况时,先用df -h查看磁盘空间的使用情况,分析是哪个路径下的磁盘满了。

df 是 disk free 的缩写,用于显示目前在 Linux 系统上的文件系统磁盘的使用情况统计。

在这里插入图片描述

第一列 Filesystem 代表文件系统的名称;第二列 Size 表示文件系统的大小;第三列 Used 表示已占用多大的磁盘空间;第四列 Avail 表示可用磁盘空间的大小;第五列 Use% 表示磁盘使用率多大,100% 表示磁盘占满了;第六列 Mounted On 表示挂载在哪个目录。

从上面结果可以看到,有个文件系统占有率为88%,为/dev/mapper/centos-root,挂载的目录为/,我们进入这个目录 看下具体情况。假设根目录磁盘占用比较高,我们去跟目录里排查一下

步骤二: 进入对应的目录下,查找磁盘空间中的大文件。使用 du 命令来显示目录或文件所占用的磁盘空间大小

cd /
#使用 du 命令来显示目录或文件所占用的磁盘空间大小
du -x -h --max-depth=1

# 列出当前目录或文件的总大小,并按倒叙排序
du -sh /* | sort -nr

在这里插入图片描述

可以看到/var目录下占比较大,最下面的44G是总的占用空间大小。

步骤三: 进入/var目录下,再查找定位

cd /var
du -x -h --max-depth=1

在这里插入图片描述

可以发现/lib这个目录占用较大,进入后发现/debug占用较大

在这里插入图片描述

这样一层一层递进查找。如果发现某个目录下的文件占用过大,可以适当删除不必要的文件或目录、清理临时文件,以释放磁盘空间;或者增加磁盘空间。rm -rf /path/to/unneeded_files_or_directoriesrm -rf /tmp/*

在这里插入图片描述

#  释放磁盘空间

#删除不必要的文件或目录
rm -rf /path/to/unneeded_files_or_directories
#清理临时文件
rm -rf /tmp/*



#  增加磁盘空间

#譬如 添加新的磁盘分区并挂载到 MySQL 数据目录下
# 创建新的分区
sudo fdisk /dev/sdb
# 格式化分区
sudo mkfs.ext4 /dev/sdb1
# 创建挂载点
sudo mkdir /mnt/mysql_data
# 挂载新的分区
sudo mount /dev/sdb1 /mnt/mysql_data

步骤四: 除了上面逐层定位的方法,我们可以直接查找出大文件,使用命令find /root -size +500M

在这里插入图片描述

### Autodl磁盘空间不足的解决方案 当遇到Autodl磁盘空间不足的情况时,可以从以下几个方面入手解决问题: #### 1. 清理不必要的文件 清理临时文件、日志文件以及不再使用的数据集或模型权重文件。这些文件可能占用大量存储空间。可以使用以下命令查找大文件并删除不需要的内容: ```bash du -sh * | sort -rh | head -n 10 ``` 此命令会列出当前目录下最大的十个文件和文件夹[^2]。 #### 2. 使用Docker容器内的根权限管理磁盘 在Autodl环境中,用户对当前容器具有`root`权限(无需加`sudo`即可执行命令)。因此可以直接操作文件系统来释放空间。例如,清空缓存文件: ```bash rm -rf ~/.cache/* ``` 这一步可以帮助清除Python包安装过程中产生的临时文件和其他缓存数据[^3]。 #### 3. 调整工作目录结构 如果某些大型数据集或中间结果文件仍然需要保留,则可以考虑将其移动到外部挂载卷或其他持久化存储位置。通过这种方式减少默认磁盘分区的压力。具体方法如下: - 创建一个新的远程共享存储; - 将重要资料迁移到该新路径下; - 更新脚本中的读写地址指向新的地方[^1]。 #### 4. 扩展虚拟机实例规格 假如经过上述优化仍无法足需求,可以选择升级实例配置以获得更大容量的系统盘。大多数云计算平台都支持在线调整资源配置的功能,在不停止业务的前提下完成硬件增强过程。 #### 5. 利用对象存储服务代替本地存储 对于那些不经常访问的大规模静态资源来说,上传至专门的对象存储产品可能是更经济高效的选择。比如AWS S3、Google Cloud Storage 或者腾讯云 COS 等都可以作为替代方案之一[^2]。 ```python import boto3 def upload_to_s3(file_name, bucket, object_name=None): """Upload a file to an S3 bucket""" s3_client = boto3.client('s3') try: response = s3_client.upload_file(file_name, bucket, object_name or file_name) except Exception as e: print(e) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值