【经典面试场景题】线上服务器如果磁盘满了,你会如何处理?

简介: 线上服务器磁盘满将导致服务异常,需立即处理。首先通过 `df -h` 和 `du -sh /*` 定位占用空间大的目录,清理临时文件与大日志文件,可清空而非删除正在使用的日志。使用 `find / -size +1G` 查找大文件,释放空间。长期应配置日志轮转、磁盘监控告警、定期清理脚本,并分离系统、数据与日志分区,避免再次打满。

答案

当线上服务器磁盘满了时,这是一个紧急问题,可能会导致服务不可用、数据无法写入甚至系统崩溃。

首先要做的是快速止血,尽快把空间释放了,避免情况进一步恶化。首先是登陆到机器上(如果都无法登录了,那就只能置换机器了。)

一、查看磁盘使用情况

df -h
du -sh /*

找出哪个分区、哪个目录占用了最多空间。

df(disk free)

用于显示文件系统的磁盘空间占用情况,包括每个挂载点的总空间、已用、可用和挂载路径。

Filesystem     Size  Used Avail Use% Mounted on
/dev/sda1      40G   30G   8.0G  80% /
tmpfs          1.9G   0     1.9G  0%  /dev/shm

du(disk usage)

用于显示指定目录或文件占用了多少磁盘空间。常用于查找哪个目录或文件占用空间大。

du -sh /*

2.1G    /home
1.2G    /var
300M    /usr

du -h --max-depth=1 /var    显示 /var 下一级目录占用空间大小。



二、清理临时文件

清空系统临时文件:

rm -rf /tmp/*


三、清理日志文件

多数情况下,磁盘满了都是日志打印的太多了,这时候可以先到你的应用日志目录下,看一下这些文件的大小,

对于一些历史日志文件,如果已经完成 ELK 的采集和同步了,就可以直接 rm -rf 物理删除。


如果你的日志只有一个文件,他又特别大,大概率是你的 logback 没有配置对,导致日志没有分成多个文件。这种情况下,根据情况,不能直接删除文件,因为你的应用还在用。这时候可以考虑用以下方式清空内容而不删文件:



> file_name


或者:


echo "" > file_name

image.gif

这样可以让日志内容清空,但可能会导致日志丢失。


四、查找大文件

找出大于 1G 的文件:

find / -type f -size +1G -exec ls -lh {} \;


五、避免日志被系统打满

从根源上解决问题:

1. 定期清理脚本

  • 写 cron job 自动清理老日志

2. 磁盘监控告警

  • 使用 Prometheus + Grafana 或 Zabbix 监控磁盘使用率
  • 设告警阈值(比如 80% 告警)

3. 日志分级 + 限量

  • 按需写日志(只写 ERROR 级别)
  • 配置日志轮转(logrotate)

4. 考虑分离日志、数据盘

  • 应用数据、日志单独挂载到不同分区,避免挤爆系统盘
目录
相关文章
|
6月前
|
消息中间件 架构师 Java
【Java架构师】各个微服务之间有哪些调用方式?
微服务拆分后需跨进程通信,常见方式包括HTTP调用(如RESTful、OpenFeign、@HttpExchange)、RPC框架(如Dubbo、gRPC、Thrift)、消息队列(如Kafka、RabbitMQ)及服务网格(如Istio)。不同场景下可依据性能、异步、跨语言等需求选择合适方案。
1181 0
|
6月前
|
消息中间件 架构师 Kafka
【架构师】如何做技术选型?
技术选型无绝对优劣,关键在于“更合适”。需综合评估功能满足度、可扩展性、安全性、性能等非功能性需求,同时考量使用人数、社区活跃度、迭代速度、学习与维护成本,以及与现有技术体系的匹配度,权衡利弊后做出最优选择。
270 4
|
6月前
|
架构师 微服务
【架构师】微服务的拆分有哪些原则?
微服务拆分需遵循七大原则:职责单一、围绕业务、中台化公共模块、按系统保障级别分离、技术栈解耦、避免循环依赖,并遵循康威定律使架构与组织匹配,提升可维护性与协作效率。
474 4
|
6月前
|
算法 UED
【高性能】什么是QPS、RT?
QPS指系统每秒处理请求数,RT为响应时间,二者是衡量Web性能的核心指标。RT影响用户体验,QPS反映系统吞吐能力,两者密切相关。通过优化硬件或架构可提升QPS、降低RT,从而提高系统性能。
875 0
|
6月前
|
easyexcel Java 数据库连接
如何实现百万级数据从 Excel 导入到数据库?
本文介绍百万级Excel数据导入数据库的优化方案,涵盖内存溢出、性能瓶颈与错误处理三大问题。通过EasyExcel流式读取避免内存溢出,结合多线程并发读取多个sheet,并利用生产者-消费者模式提升处理效率。采用批量插入与事务管理提高数据库写入性能,同时设计数据校验、重试机制与日志记录保障容错性,确保大规模数据导入稳定高效。
485 0
|
缓存 关系型数据库 MySQL
服务器磁盘爆满?别慌,教你轻松清理!
服务器磁盘空间告急?别慌!本文将教你如何快速识别并清理占用大量磁盘空间的文件和目录,优化日志文件,释放磁盘空间,恢复系统正常运行。适合服务器管理员和网站运营者。
2166 0
 服务器磁盘爆满?别慌,教你轻松清理!
|
存储 弹性计算
阿里云服务器系统盘存储空间不够用怎么办?
当阿里云服务器系统盘空间不足时,您可以通过系统盘扩容或挂载数据盘解决。系统盘扩容无需重启服务器,详细步骤见系统盘扩容教程。挂载数据盘需预先购买,并确保与服务器位于同一地域和可用区,最多可挂载64块,详情见挂载数据盘教程
3094 6