技术解析

Linux 系统如果把磁盘写满了继续写会怎么样?
0
2021-06-17 17:43:09
idczone
昨天发生了一件事: celery 写的 worker 日志把磁盘写满了,然后 CPU 突然拉到 100,今早发现所有任务都积压了....我想知道写满了磁盘后继续写文件系统会发生啥?
写不进去

那把要写的东西扔到哪里了?/dev/null?

抛 io 异常了吧

我记得好像是抛异常

没来得及看日志直接清掉了 着急恢复功能 有可能抛异常吧

我遇到过,SSH 都无法远程登陆,只能接显示器删点东西后才能登陆

这个倒是能登...可能是因为只是 /opt 满了...

会导致很多程序异常,甚至是系统服务,所以一般把应用数据放在其他挂载点。

思考一个问题,如果是你操作系统,向用户提供一个写数据的接口,你会如何设计?

为什么 100%呢?既然都没事可干了

可以自己模拟一下,就知道会发生什么了:cat /dev/zero > zero.fill;sync;

崩溃

写不进去,会导致你的应用无法正常允许。

抛异常 服务全挂

只要涉及(依赖)读写文件(包括打开文件)的行为都不能用。
其它不涉及(依赖)的都可以用。
就这么回事。

为啥 CPU 被拉满了 是一直在尝试写么?

你们还是太年轻呀,从业那么多年竟然没有被日志撑暴过硬盘…
数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服