1. 查看磁盘空间使用情况
首先通过df -h命令查看各分区的使用情况,明确需要优化的分区(如根分区/、/home或/var等);结合du -sh /path/to/directory定位占用空间大的目录,使用ncdu(交互式磁盘分析工具)进一步分析具体文件占用,为后续操作提供依据。
2. 动态调整逻辑卷(LVM)大小
若使用LVM管理分卷,可通过以下步骤扩展或收缩空间:
lvextend命令增加逻辑卷大小(如为根分区增加10G):lvextend -L +10G /dev/mapper/centos-root;pvcreate创建新物理卷(如/dev/sdb1),再通过vgextend将其加入卷组:pvcreate /dev/sdb1 → vgextend centos /dev/sdb1 → 再执行lvextend。/home):umount /home;lvreduce减少逻辑卷大小(如减少10G):lvreduce -L -10G /dev/mapper/centos-home;mount /home。xfs_growfs /dev/mapper/centos-root;resize2fs /dev/mapper/centos-root。3. 清理不必要的文件与分区
/tmp目录下的所有临时文件:sudo rm -rf /tmp/*;du -sh /var/log/*查看日志文件大小,清空大日志文件(如/var/log/messages):truncate -s 0 /var/log/messages;yum list installed列出已安装软件,移除无用软件包:sudo yum remove package_name;lsof | grep deleted查找被删除但仍被进程占用的文件,重启对应进程或直接终止进程释放空间;umount /dev/mapper/centos-home),再删除逻辑卷(lvremove /dev/mapper/centos-home)、物理卷(pvremove /dev/sdXY),最后从卷组中移除物理卷(vgreduce centos /dev/sdXY)。4. 优化文件系统与挂载选项
ext4(稳定、兼容性好);XFS(高性能、支持动态扩展)。/etc/fstab中修改挂载选项,添加noatime(不更新文件访问时间)、nodiratime(不更新目录访问时间),减少不必要的磁盘写操作,提升性能。例如:/dev/mapper/centos-root / ext4 defaults,noatime 0 1。5. 使用VDO(虚拟数据优化器)减少实际占用
VDO是一种块虚拟化技术,可透明实现数据重复删除与压缩,减少磁盘实际使用容量。
yum -y install vdo kmod-kvdo;/dev/sda)和逻辑大小(如60G):vdo create --name=vdolvm --device=/dev/sda --vdoLogicalSize=60G --writePolicy=async;systemctl start vdo vdolvm;vdostats --human-readable。6. 调整I/O调度器与缓存
cat /sys/block/sda/queue/scheduler查看当前调度器):
deadline(低延迟)或bfq(适合交互式应用);noop(无队列调度,发挥SSD顺序读写优势)。echo deadline > /sys/block/sda/queue/scheduler(临时生效),或写入/etc/default/grub永久生效。lvcreate -L 10G -n lv_cache vg0创建缓存卷,再通过lvconvert --type cache --cachevol vg0/lv_cache vg0/lv_root关联逻辑卷);7. 监控与持续优化
df -h每周查看分区使用情况,设置阈值(如80%)触发告警;iostat(查看磁盘IO负载)、vmstat(查看系统整体性能)等工具,及时发现性能瓶颈(如高IO等待);vm.swappiness(控制内存交换倾向,默认60,服务器可降低至10-20,减少磁盘IO)。