Linux 服务器硬盘满了后感觉会出不少 bug - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
seWindows
V2EX    Linux

Linux 服务器硬盘满了后感觉会出不少 bug

  •  
  •   seWindows 2024-09-15 00:36:45 +08:00 3976 次点击
    这是一个创建于 464 天前的主题,其中的信息可能已经有所发展或是发生改变。
    服务器上一直不停报错没注意,跑了几个月,竟然把 journal 的日志占满了。journal 日志一直没限制。后来清理的时候发现大概占了硬盘空间的 80%左右,其实是发现 ssh 登不上去了才发现这个问题。

    商家的 vnc 也因为硬盘满了,tty 进不去。

    还好进救援模式才进去了,不然只能重装了。一看是真的 100%,一点也没有空余空间了。

    期间还发现了如果硬盘满了,挂载里面 loop 文件也挂载不上去,提示“块有问题”。清理完后就行了


    后来复盘的时候才发现是一个 loop 硬盘满了,读写一直失败。导致宿主机一直记录这个失败日志,导致宿主机硬盘也满了。
    硬盘满了后,感觉有不少软件会卡在 syslog 或者其他 log 函数上。很多软件都会出现预期之外的行为。
    22 条回复    2024-09-24 11:07:25 +08:00
    wacxr123
        1
    wacxr123  
       2024-09-15 01:01:18 +08:00 via Android
    确实,我的经验是如果按 Tab 无法自动补全路径,就知道是盘满了(
    flynaj
        2
    flynaj  
       2024-09-15 01:55:14 +08:00 via Android
    这个时候你就知道 zabbix 的好处了。
    Donaldo
        3
    Donaldo  
       2024-09-15 01:57:10 +08:00
    我中招过几次,但我一堆服务器总是懒得去设置,其实可以设置一下 rotate 或者过期日期,要不迟早有满的一天。。。啊,好累。。。
    Kumo31
        4
    Kumo31  
       2024-09-15 03:12:18 +08:00
    这些行为就是预期内的,只不过大部分软件的设计者就没考虑处理这种情况。我们还有一个专门的避免任何 IO 的程序去做这种情况下的节点降级处理
    june4
        5
    june4  
       2024-09-15 08:00:30 +08:00
    我自己写了个快满了无限 5 分钟发一次邮件的定时任务,放在我的 linux 服务器初始化安装脚本里。

    #!/bin/bash -e
    if [[ -f /etc/default/disk-usage-agent ]]; then
    . /etc/default/disk-usage-agent
    fi
    max_usage=${max_usage:-90}
    usage=$(df | grep -e '/$' | awk '{print $5}' | tr -d %)
    if (( usage > max_usage )); then
    warnmsg="WARNING: disk-usage-agent: exceeds max usage: $usage%"
    echo $warnmsg >&2
    df -h | /opt/util/bin/mailadmins "$warnmsg" -
    fi
    totoro625
        6
    totoro625  
       2024-09-15 09:46:27 +08:00
    某些程序的写入操作是删除原有数据再写入(并不是追加和修改),硬盘已满的情况下这样会导致文件丢失
    这里点名 acme
    kneo
        7
    kneo  
       2024-09-15 09:51:49 +08:00 via Android
    这不叫 bug 。举个再极端的例子,你电脑断电了程序挂了,你能说这是软件 bug ?
    L4Linux
        8
    L4Linux  
       2024-09-15 12:44:56 +08:00
    你们运维在干啥? logrotate 都不跑一下的吗?
    dfdd1811
        9
    dfdd1811  
       2024-09-15 16:40:04 +08:00
    所以虽然我自己只有三台机器,但我还是用 prometheus+grafana…
    wheat0r
        10
    wheat0r  
       2024-09-15 19:51:42 +08:00
    这事最大的 bug 是有人把硬盘跑满了
    dengjunhua
        11
    dengjunhua  
       2024-09-15 20:56:48 +08:00 via iPhone
    监控和告警的重要性
    wolonggl
        12
    wolonggl  
       2024-09-15 21:30:56 +08:00
    磁盘满了。依赖在磁盘创建临时文件基本收到影响,
    报告/tmp 空间满了后,一大堆软件受影响
    flyqie
        13
    flyqie  
       2024-09-16 11:47:21 +08:00
    这个其实蛮正常的。

    毕竟不同软件的内部流程是不一样的,自然是没法统一的。

    并且说真的。。应该设个剩余空间报警,不然很麻烦。
    Yii234
        14
    Yii234  
       2024-09-16 14:45:36 +08:00
    最基础的主机监控告警都没有,是生产服务器吗?
    PerFectTime
        15
    PerFectTime  
       2024-09-16 15:12:10 +08:00
    想起来之前看到的一个段子,新拿到服务器先 dd 一个 10g 的空文件,等到磁盘满了删除该文件以快速解决磁盘占用满的问题
    sunxvvv
        16
    sunxvvv  
       2024-09-16 16:57:43 +08:00
    硬盘满了,数据无法写到硬盘上,程序和内核的部分功能无法正常完成,不出问题才不合理吧......
    pollux
        17
    pollux  
       2024-09-17 15:55:06 +08:00
    @PerFectTime 牛 +1
    flyqie
        18
    flyqie  
       2024-09-17 16:37:22 +08:00 via Android
    @PerFectTime #15

    你这让我想起来 ext4 的保留空间了。。

    都是干这个用的
    FrankAdler
        19
    FrankAdler  
       2024-09-17 18:20:19 +08:00
    /usr/bin/journalctl --vacuum-size=50M 放定时任务把
    Coelacanthus
        20
    Coelacanthus  
       2024-09-23 19:29:44 +08:00
    @FrankAdler 那不如在 journald.conf 里配置 SystemMaxUse 或者 SystemKeepFree
    FrankAdler
        21
    FrankAdler  
       2024-09-23 19:44:54 +08:00
    @Coelacanthus 也是可以的
    dode
        22
    dode  
       2024-09-24 11:07:25 +08:00
    升级系统命令好久都执行失败,提示请求源错误,后来看一下,系统根目录空间满了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1857 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 16:14 PVG 00:14 LAX 08:14 JFK 11:14
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86