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