昨天发生了一件事: celery 写的 worker 日志把磁盘写满了,然后 CPU 突然拉到 100,今早发现所有任务都积压了....我想知道写满了磁盘后继续写文件系统会发生啥?

1 mritd Apr 5, 2020 via iPhone 写不进去 |
3 inwar Apr 5, 2020 via Android 抛 io 异常了吧 |
4 lisonfan Apr 5, 2020 我记得好像是抛异常 |
6 bruce2000 Apr 5, 2020 我遇到过,SSH 都无法远程登陆,只能接显示器删点东西后才能登陆 |
8 wdlth Apr 5, 2020 会导致很多程序异常,甚至是系统服务,所以一般把应用数据放在其他挂载点。 |
9 laminux29 Apr 5, 2020 思考一个问题,如果是你操作系统,向用户提供一个写数据的接口,你会如何设计? |
10 julyclyde Apr 5, 2020 为什么 100%呢?既然都没事可干了 |
11 pilgrim_kevin Apr 5, 2020 可以自己模拟一下,就知道会发生什么了:cat /dev/zero > zero.fill;sync; |
12 wanguorui123 Apr 5, 2020 via iPhone 崩溃 |
13 MilkShake Apr 5, 2020 写不进去,会导致你的应用无法正常允许。 |
14 W1angMh Apr 5, 2020 抛异常 服务全挂 |
15 oahebky Apr 5, 2020 只要涉及(依赖)读写文件(包括打开文件)的行为都不能用。 其它不涉及(依赖)的都可以用。 就这么回事。 |
17 feelinglucky Apr 5, 2020 你们还是太年轻呀,从业那么多年竟然没有被日志撑暴过硬盘… |
18 MOONLIGHTT Apr 5, 2020 @bruce2000 +1 |
19 msg7086 Apr 6, 2020 写文件用的是 write 调用。 write 调用在磁盘满了的时候会报 ENOSPC 。 ENOSPC The device containing the file referred to by fd has no room for the data. 有一些程序会在磁盘满了的时候继续重试。 |
20 RickyC Apr 6, 2020 比如 MySQL 可能会崩溃不能启动 |