linux空间不足怎么办?linux系统磁盘空间清理方法

Linux 系统中的“空间管理”通常包含两个核心维度:磁盘空间(Disk Space)内存空间(Memory/RAM),还包括文件系统的挂载、配额管理以及日志清理等运维操作。

以下是 Linux 空间管理的全面指南,涵盖常用命令、最佳实践和故障排查。

Linux服务器磁盘占满怎么解决?
加载中
Linux服务器磁盘占满怎么解决?

磁盘空间管理 (Disk Space)

查看磁盘使用情况

  • df (Disk Free):查看文件系统整体的磁盘使用情况。
    df -h       # 以人类可读格式(GB/MB)显示
    df -i       # 查看 inode 使用情况(重要:inode 耗尽会导致无法创建文件,即使磁盘还有空间)
  • du (Disk Usage):查看特定目录或文件占用的空间。
    du -sh /var/log/  # 查看 /var/log 下每个子目录的大小
    du -sh .           # 查看当前目录总大小
    du -ah | sort -nr | head -20 # 找出当前目录下最大的20个文件

查找大文件/大目录

当磁盘空间不足时,需要快速定位“罪魁祸首”:

# 在当前目录及其子目录中查找大于 100M 的文件
find / -type f -size +100M -exec ls -lh {} ; 2>/dev/null
# 或者使用 ncdu 工具(推荐,交互式界面)
sudo apt install ncdu  # Debian/Ubuntu
sudo yum install ncdu  # CentOS/RHEL
ncdu /path/to/directory

清理无用文件

  • 包管理器缓存
    # Ubuntu/Debian
    sudo apt clean
    # CentOS/RHEL
    sudo yum clean all
  • 日志文件清理
    # 清空日志文件内容(不删除文件,保留句柄)
    sudo truncate -s 0 /var/log/syslog
    # 或使用 echo
    echo "" > /var/log/syslog

    linux空间不足怎么办?linux系统磁盘空间清理方法

  • 旧内核清理(CentOS/RHEL):
    package-cleanup --oldkernels --count=2

扩展磁盘空间

  • LVM 逻辑卷管理(推荐):
    如果使用了 LVM,可以在不重启的情况下扩展逻辑卷:

    # 1. 扩展物理卷
    pvresize /dev/sdb
    # 2. 扩展逻辑卷
    lvextend -l +100%FREE /dev/mapper/vg0-lv0
    # 3. 扩展文件系统
    xfs_growfs /mount/point   # XFS 文件系统
    resize2fs /dev/mapper/vg0-lv0 # EXT4 文件系统
  • 扩容虚拟磁盘:如果是虚拟机,先在虚拟化平台(VMware/VirtualBox)扩容虚拟磁盘,然后在 Linux 中使用 growpartresize2fsxfs_growfs 进行扩容。

内存空间管理 (Memory Management)

查看内存使用情况

  • free:查看总内存、已用内存、空闲内存。
    free -h
  • top / htop:实时监控进程内存和 CPU 占用。
    htop  # 更友好的交互式界面
  • vmstat:查看虚拟内存统计信息。
    vmstat 1 5  # 每秒刷新一次,共5次

理解 Linux 内存机制

  • Buff/Cache 占用高是正常的:Linux 会利用空闲内存缓存文件,以提高性能,这部分内存在应用程序需要时会自动释放。
  • Swap(交换空间):当物理内存不足时,系统会将部分内存数据移到硬盘上的 Swap 分区。
    • 查看 Swap 使用情况swapon --show
    • 增加 Swap 文件(Swap 不足):

      linux空间不足怎么办?linux系统磁盘空间清理方法

      # 创建 1G 的 swap 文件 sudo fallocate -l 1G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile # 永久生效:添加到 /etc/fstab echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

内存泄漏排查

如果发现内存持续增长且不释放:

  1. 使用 topM 键按内存排序,找到占用最高的进程。
  2. 使用 pmap <PID> 查看该进程内存映射详情。
  3. 使用 valgrindgdb 进行深度调试(针对开发阶段)。

文件系统与挂载管理

查看挂载点

mount | grep -v proc
# 或
cat /etc/fstab  # 查看开机自动挂载配置

手动挂载/卸载

# 挂载
sudo mount /dev/sdb1 /mnt/data
# 卸载
sudo umount /mnt/data
# 强制卸载(如果设备忙)
sudo umount -l /mnt/data

文件系统检查

  • EXT4fsck /dev/sdb1(需在卸载状态下进行)
  • XFSxfs_repair /dev/sdb1

磁盘配额管理 (Disk Quota)

允许限制用户或组在文件系统上可使用的磁盘空间和 inode 数量。

  1. 安装 quota 工具
    sudo apt install quota quotatool  # Debian/Ubuntu
    sudo yum install quota            # CentOS/RHEL
  2. 启用配额支持
    编辑 /etc/fstab,在挂载选项中添加 usrquota,grpquota

    /dev/sdb1 /data ext4 defaults,usrquota,grpquota 0 2
  3. 重新挂载并初始化
    sudo mount -o remount /data
    sudo quotacheck -cugm /data

    linux空间不足怎么办?linux系统磁盘空间清理方法

  4. 设置配额
    # 为用户 user1 设置:软限制 1GB,硬限制 1.2GB
    sudo edquota -u user1

最佳实践与监控建议

  1. 设置告警

    • 使用 Nagios, Zabbix, Prometheus + Grafana 监控磁盘使用率。
    • 设置阈值:当磁盘使用率 > 85% 时发送告警。
  2. 定期清理策略

    • 使用 logrotate 管理日志文件,自动压缩和删除旧日志。
    • 编写 Cron 脚本定期清理临时文件(/tmp, /var/tmp)。
  3. 避免 inode 耗尽

    • 不要创建大量小文件(如数百万个空文件)。
    • 定期检查 df -i,inode 使用率高,需查找并删除小文件。
  4. 使用 SSD 优化

    • 确保启用 discard 选项以支持 TRIM,延长 SSD 寿命。
    • 调整 I/O 调度器为 nonemq-deadline(SSD 推荐)。

常见问题排查流程图

磁盘/内存不足
    │
    ├─ 是磁盘空间问题?
    │   ├─ 检查 df -h → 哪个分区满了?
    │   ├─ 检查 df -i → 是否 inode 耗尽?
    │   └─ 使用 du/ncdu 查找大文件 → 清理或归档
    │
    └─ 是内存问题?
        ├─ 检查 free -h → Buff/Cache 是否过高?(正常)
        ├─ 检查 Swap 使用情况 → 是否频繁交换?
        └─ 使用 top/htop 查找高内存进程 → 重启服务或优化代码

通过以上方法,你可以有效地管理和优化 Linux 系统的空间资源,确保系统稳定运行。

首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/478564.html

(0)
linux怎么安装phantomjs?phantomjs安装教程
上一篇 2026年7月10日 06:20
Python %类型是什么?Python类型转换常用方法
下一篇 2026年7月10日 06:21

相关推荐

  • iometer linux怎么下载?iometer linux安装包下载

    iometer在Linux下的最佳获取方式是通过源码编译安装或使用包管理器安装,对于追求极致性能压测的用户,推荐从GitHub下载最新源码自行编译;对于普通运维人员,直接使用yum或apt安装预编译版本即可满足基础测试需求,在服务器运维和存储性能优化的工作中,磁盘I/O压力测试是不可或缺的一环,iometer作……

    相关资讯 2026年7月8日
    7200
  • linux如何彻底卸载搜狗输入法?linux卸载软件命令

    在Linux系统中彻底卸载搜狗输入法,最稳妥的方式是删除其安装目录并清理相关配置文件,通常涉及移除 /usr/share/sogoupinyin 或 /opt/sogoupinyin 文件夹,同时清理用户目录下的 .config/sogoupinyin 配置项,若使用deb包安装还需执行 sudo apt re……

    2026年7月7日
    14400
  • linux终端驱动怎么装?linux驱动安装教程

    Linux终端驱动的核心在于建立硬件与内核之间的标准化通信接口,通过TTY子系统、PTY伪终端及现代Console框架,实现字符流的高效双向传输与终端状态管理,确保从底层串口到图形化SSH会话的无缝兼容,在Linux操作系统中,终端不仅仅是你看到的黑底白字窗口,它是整个系统交互的神经末梢,很多人误以为终端驱动只……

    2026年7月9日
    11900
  • Linux挂载cdrom失败怎么办?Linux挂载光驱详细教程

    在 Linux 系统中挂载 CD-ROM(光驱)通常涉及以下几个步骤,由于现代 Linux 发行版(如 Ubuntu、CentOS、RHEL、Fedora 等)大多使用 udev 自动管理设备,有时光驱会自动挂载,但手动挂载也很常见,以下是详细的操作步骤:确认光驱设备名称你需要知道光驱在系统中的设备文件路径,常……

    2026年7月10日
    4700
  • linux getopt long参数怎么用?linux getopt long参数详解

    Linux getopt long 是解析命令行长选项的标准工具,它能显著提升脚本的可读性与维护性,相比短选项更直观且不易冲突,在 Linux 命令行交互中,我们经常需要处理复杂的参数传递,传统的短选项如 -f 或 -v 虽然简洁,但在脚本日益庞大、参数众多的场景下,容易引发歧义,-o 可能代表 output……

    2026年7月4日
    7000
  • Android底层是Linux吗?Android系统底层架构详解

    Android底层基于Linux内核,通过Binder机制实现进程间通信,并利用SELinux保障系统安全,这种架构既保留了Linux的稳定性,又提供了Android特有的应用运行环境,很多人误以为Android只是一个简单的手机操作系统,实际上它是一套复杂的软件栈,从硬件驱动到用户界面,每一层都有明确分工,理……

    2026年7月4日
    11600
  • Linux网络修复不了怎么办?Linux系统网络不通怎么解决

    Linux网络故障修复的核心在于通过分层排查法,从物理链路到应用协议逐层定位断点,通常优先检查网卡状态、IP配置及DNS解析,多数情况下重启NetworkManager服务或重置网络栈即可解决临时性连接异常,Linux网络故障的常见场景与快速诊断逻辑在服务器运维或日常开发环境中,网络中断往往不是单一原因造成的……

    2026年7月8日
    5000
  • Linux exit code报错怎么解决?常见错误码含义及排查方法

    Linux 退出码(Exit Code)是脚本执行结果的数字信号,0 代表成功,非 0 代表失败,它是自动化运维和错误排查的核心依据,在 Linux 系统中,每一个命令、脚本或程序结束时,都会向父进程返回一个整数,这就是退出码,它就像是一个无声的信号灯,告诉系统刚才的操作是绿灯放行还是红灯停摆,对于日常使用者来……

    2026年7月5日
    10100
  • linux粘滞位是什么?linux粘滞位权限设置方法

    Linux粘滞位(Sticky Bit)是文件系统中一种特殊的权限设置,核心作用是限制目录内文件的删除权限,确保只有文件所有者、目录所有者或root用户才能删除或重命名该目录下的文件,从而在共享环境中保障数据安全,粘滞位的本质与历史渊源在深入技术细节之前,我们需要厘清一个概念:粘滞位最初并非为目录设计,而是针对……

    2026年7月7日
    14800
  • Windows和Linux环境有什么区别?如何配置跨平台开发环境

    在2026年的开发环境中,Windows与Linux并非非此即彼的对立关系,而是通过WSL2或远程连接实现互补的最佳实践是:日常交互用Windows,核心部署与代码运行用Linux,过去,开发者常常需要在两台物理机之间切换,或者忍受虚拟机卡顿的折磨,技术栈的融合让边界变得模糊,对于大多数中国开发者而言,选择哪种……

    2026年7月5日
    17900

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注