Linux系统清理指南:如何优化磁盘性能
小樊
33
2025-12-09 06:19:19
Linux 磁盘清理与性能优化指南
一 快速定位与清理空间
- 查看整体占用:使用 df -h 确认哪些挂载点空间吃紧;随后用 du -h --max-depth=1 /path 逐级定位大目录。
- 清理临时与缓存:清理 /tmp 与 /var/tmp(确保无服务依赖),按需清理包管理器缓存(apt clean/autoclean、yum clean all、dnf clean all),并清理旧日志(如 journalctl --vacuum-time=3d 或 –vacuum-size=100M)。
- 删除大文件与旧内核:用 find / -type f -size +100M -exec ls -lh {} ; 找出大文件;在 Debian/Ubuntu 上用 dpkg --list | grep linux-image 查看旧内核并用 apt-get purge linux-image- 移除。
- 谨慎清理页面缓存:仅在确认空间紧张且业务低峰时执行 sync && echo 3 > /proc/sys/vm/drop_caches,避免影响性能。
- 图形化辅助:使用 Baobab(磁盘使用分析器) 或 BleachBit 做可视化盘查与清理。
二 观测瓶颈与诊断
- 性能指标关注:使用率、饱和度、IOPS、吞吐量、响应时间;当使用率长期高于 80% 或饱和度接近 100% 时,通常存在 I/O 瓶颈。
- 常用工具与命令:
- iostat -x 1 10(查看每个磁盘的详细 I/O 与使用率)
- iotop -o(定位产生 I/O 的进程)
- vmstat -d(观察磁盘读写统计)
- dmesg | tail、smartctl -H /dev/sdX(检查硬件错误与健康状态)
- ioping -c 10 -i 1 -s 1024 /dev/sdX(测量 I/O 延迟)
- 诊断路径:先用 iostat 发现瓶颈 → 用 pidstat/iotop 定位进程 → 结合应用特征分析 I/O 来源 → 制定优化措施。
三 存储栈关键优化
- 硬件与介质
- 优先使用 SSD/NVMe;HDD 关注 转速(如 7200 RPM) 与 缓存大小。
- 识别介质类型:lsblk -d -o name,rota(ROTA=1 为 HDD,0 为 SSD);NVMe 可用 nvme set-feature 启用电源管理特性(如 APST)。
- 文件系统与挂载
- 选型:ext4(通用、可在线收缩)、XFS(大分区/大文件表现佳、不可收缩)、Btrfs(特性丰富)。
- 挂载选项:优先 noatime/nodiratime;日志模式可选 ordered/writeback(权衡一致性与性能);ext4 可结合 data=writeback;XFS 可用 inode64、nobarrier(确保硬件/阵列具备电池或超级电容保护)。
- I/O 调度器
- 查看:cat /sys/block/sdX/queue/scheduler
- 选择:SSD/NVMe 推荐 none/noop(减少排序开销);HDD 或通用场景可用 deadline;数据库等低延迟敏感负载可用 cfq 并配合 ionice 调整优先级。
- 块设备与队列
- 预读:blockdev --setra 8192 /dev/sdX(顺序读较多时增大预读);
- 队列长度:echo 256 > /sys/block/sdX/queue/nr_requests(提升吞吐但可能增加延迟);
- NVMe 队列:echo 16 > /sys/block/nvme0n1/queue/nr_requests。
- 内核与虚拟内存
- 脏页与回写(示例值,需结合负载调优):
- vm.dirty_background_ratio = 5
- vm.dirty_ratio = 10
- vm.dirty_expire_centisecs = 500
- vm.dirty_writeback_centisecs = 100
- 回收倾向:/proc/sys/vm/vfs_cache_pressure(默认 100,数值越大越倾向回收目录项/索引节点缓存)。
- 高级加速
- RAID:RAID0(条带化提吞吐)、RAID1(镜像冗余)、RAID10(性能+冗余);
- LVM:灵活扩缩与快照;
- bcache:用 NVMe 加速 HDD。
四 维护与压测建议
- 持续监控与巡检:定期用 iostat、iotop、smartctl 观察趋势,关注 dmesg 硬件告警;对关键业务建立容量与性能基线。
- 分区与对齐:规划合理分区大小与数量,确保分区对齐到物理扇区边界,减少寻道与跨扇区开销。
- 压测验证:上线或调优后用 fio 进行 I/O 压测,验证 IOPS、吞吐量、延迟 是否达标,并回放真实业务访问模式。
五 安全与回退
- 变更前备份重要数据与配置,优先在测试环境验证;对 /etc/fstab、/etc/sysctl.conf 等修改保留回退方案。
- 在线调整 I/O 调度器与队列参数可能影响正在运行的服务,建议在维护窗口进行,并逐步调参观察影响。
- 清理操作(如删除日志、包缓存、旧内核)务必确认依赖关系,避免影响系统更新与回滚能力。