CentOS云服务器/var分区满致服务崩溃排查实录
文章分类:行业新闻 /
创建时间:2026-01-09
用CentOS云服务器时,最让人头疼的莫过于系统突然"罢工"。某天登录管理后台,发现原本流畅的操作变得卡顿,查看服务状态时,Nginx、MySQL等关键服务陆续报错,日志里反复跳出"磁盘空间不足"的提示。初步检查文件系统,/var分区使用率赫然显示100%——问题就出在这里。
要解决问题,先得搞清楚是谁"偷"走了/var分区的空间。第一步用`df -h`命令查看全局磁盘占用情况,这是最直接的诊断方式,命令执行后会列出各分区的总容量、已用空间和挂载点,确认/var分区确实满了。
```bash
df -h
```
知道/var分区满了,接下来要定位具体"元凶"。这时`du -sh /var/*`命令派上用场,它能快速统计/var目录下每个子目录的大小。如果结果太多看不过来,可以给命令加个排序参数,用`du -sh /var/* | sort -rh`按占用空间从大到小排列,大文件目录立刻"现形"。
```bash
du -sh /var/* | sort -rh
```
实际排查中,/var/log和/var/cache是最常见的"空间消耗大户"。/var/log存储系统和应用日志,若日志轮转规则不合理,大日志文件会像滚雪球般占满空间。用`ls -lhS /var/log`命令按文件大小排序查看,能快速找到异常增长的日志文件。
```bash
ls -lhS /var/log
```
/var/cache则是软件包缓存和临时文件的"仓库",尤其是yum等包管理工具下载的安装包,长时间不清理会越积越多。
找到"元凶"后分情况处理。如果是日志文件惹的祸,优先用logrotate工具做日志轮转。这个工具能按配置自动切割、压缩旧日志,既保留历史记录又释放空间。编辑`/etc/logrotate.d/syslog`等配置文件,调整日志保留天数或单文件大小限制,比如将`rotate 7`改为`rotate 3`(只保留最近3天的日志),就能有效控制日志体积。
```bash
vi /etc/logrotate.d/syslog
```
若是/var/cache的包缓存占用,用`yum clean all`命令一键清理即可,它会删除yum下载的所有缓存包和元数据,安全且高效。
```bash
yum clean all
```
如果常规清理后空间还是不够,就得考虑扩容/var分区。这时候LVM(逻辑卷管理)的优势就体现出来了,它支持动态调整分区大小。先通过`pvs`、`vgs`、`lvs`命令查看物理卷、卷组和逻辑卷的使用情况,确认有可用的空闲空间后,用`lvextend`命令扩展逻辑卷。比如给/var分区增加10G空间:
```bash
lvextend -L +10G /dev/mapper/centos-var
```
最后根据文件系统类型调整大小,XFS文件系统用`xfs_growfs`,ext4用`resize2fs`,命令执行后新空间就能被系统识别。
```bash
xfs_growfs /dev/mapper/centos-var
```
日常运维中,建议每周用`df -h`检查一次/var分区使用率,给关键目录设置监控报警(如日志文件单日增长超500MB触发提醒),结合logrotate自动清理策略,能有效预防/var分区满的问题。掌握这些方法,CentOS云服务器的磁盘空间管理会更从容,业务运行也更稳定。
下一篇: 美国服务器容器调度配置:面试高频要点解析
工信部备案:粤ICP备18132883号-2