CentOS环境下优化磁盘使用的实践指南
优化CentOS系统磁盘使用需从清理冗余文件、高效管理分区、提升文件系统性能、监控磁盘状态四大维度入手,以下是具体可操作的步骤:
/var/cache/yum目录空间,执行sudo yum clean all(或dnf clean all)可彻底清除缓存,释放约几GB空间(视软件包数量而定)。/tmp目录用于存储临时文件,重启后部分文件会自动清除,但长期运行的系统可能积累大量无用文件,执行sudo rm -rf /tmp/*可安全清理(避免删除正在使用的临时文件)。/boot分区空间,执行sudo package-cleanup --oldkernels --count=1可保留最新1个内核,删除其余旧内核(需root权限)。/var/log目录下的日志文件(如messages、secure、nginx/access.log)会持续增长,可通过以下方式管理:
sudo find /var/log -type f -name "*.log" -size +50M -mtime 7 -exec truncate -s 0 {} \;(清空修改时间超过7天且大于50MB的日志);sudo find /var/log -type f -name "*.log" -mtime +30 -exec rm -f {} \;(删除修改时间超过30天的日志);logrotate工具(默认已安装)配置/etc/logrotate.conf,定期压缩、删除旧日志。lsof | grep deleted命令查找已被删除但仍被进程占用的文件(显示为deleted状态),重启对应进程或直接终止进程可释放空间。pvcreate /dev/sdX(sdX为新分区)将其添加为物理卷;vgextend centos /dev/sdX(centos为卷组名)将物理卷加入卷组;lvextend -L +10G /dev/centos/root(增加10GB)扩展逻辑卷;xfs_growfs /dev/centos/root(XFS文件系统)或resize2fs /dev/centos/root(ext4文件系统)使扩展生效。fdisk /dev/sdX(sdX为目标磁盘)删除旧分区(需备份数据)、创建新分区并格式化,再挂载到指定目录(如/mnt/newdisk)。noatime参数(/etc/fstab中修改为defaults,noatime),减少文件访问时间的写入操作,降低磁盘I/O;noatime,nodiratime参数,进一步优化性能。sudo yum install vdo kmod-kvdo,创建VDO卷:sudo vdo create --name=myvol --device=/dev/sdX,将其作为物理卷使用。df -h:查看各分区使用情况(总大小、已用、可用、挂载点);du -sh /*:查看根目录下各目录大小,定位占用空间大的目录;ncdu:交互式磁盘分析工具(sudo yum install ncdu),通过界面快速查找大文件/目录。cron定时任务(如每天凌晨1点)执行df -h > /var/log/disk_usage.log记录磁盘使用情况,或使用logwatch工具发送预警邮件(需配置/etc/logwatch/conf/services/disk.conf)。systemctl list-unit-files --state=enabled查看已启用的服务,禁用不需要的服务(如bluetooth、cups),减少后台进程对磁盘的占用(sudo systemctl disable service_name)。access_log off;)或压缩存储(如MySQL的innodb_file_per_table=ON)。/etc/sysctl.conf中的vm.swappiness值(如vm.swappiness=10,范围0-100),降低系统使用交换分区(Swap)的倾向,提升磁盘I/O性能(修改后执行sysctl -p生效)。注意事项:
/home、/etc目录);