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
目录);