V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
seWindows
V2EX  ›  Linux

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

  •  
  •   seWindows · 3 天前 · 2431 次点击
    服务器上一直不停报错没注意,跑了几个月,竟然把 journal 的日志占满了。journal 日志一直没限制。后来清理的时候发现大概占了硬盘空间的 80%左右,其实是发现 ssh 登不上去了才发现这个问题。

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

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

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


    后来复盘的时候才发现是一个 loop 硬盘满了,读写一直失败。导致宿主机一直记录这个失败日志,导致宿主机硬盘也满了。
    硬盘满了后,感觉有不少软件会卡在 syslog 或者其他 log 函数上。很多软件都会出现预期之外的行为。
    19 条回复    2024-09-17 18:20:19 +08:00
    wacxr123
        1
    wacxr123  
       3 天前 via Android
    确实,我的经验是如果按 Tab 无法自动补全路径,就知道是盘满了(
    flynaj
        2
    flynaj  
       3 天前 via Android
    这个时候你就知道 zabbix 的好处了。
    Donaldo
        3
    Donaldo  
       3 天前
    我中招过几次,但我一堆服务器总是懒得去设置,其实可以设置一下 rotate 或者过期日期,要不迟早有满的一天。。。啊,好累。。。
    Kumo31
        4
    Kumo31  
       3 天前
    这些行为就是预期内的,只不过大部分软件的设计者就没考虑处理这种情况。我们还有一个专门的避免任何 IO 的程序去做这种情况下的节点降级处理
    june4
        5
    june4  
       3 天前
    我自己写了个快满了无限 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  
       3 天前
    某些程序的写入操作是删除原有数据再写入(并不是追加和修改),硬盘已满的情况下这样会导致文件丢失
    这里点名 acme
    kneo
        7
    kneo  
       3 天前 via Android
    这不叫 bug 。举个再极端的例子,你电脑断电了程序挂了,你能说这是软件 bug ?
    L4Linux
        8
    L4Linux  
       3 天前
    你们运维在干啥? logrotate 都不跑一下的吗?
    dfdd1811
        9
    dfdd1811  
       3 天前
    所以虽然我自己只有三台机器,但我还是用 prometheus+grafana…
    wheat0r
        10
    wheat0r  
       3 天前
    这事最大的 bug 是有人把硬盘跑满了
    dengjunhua
        11
    dengjunhua  
       3 天前 via iPhone
    监控和告警的重要性
    wolonggl
        12
    wolonggl  
       3 天前
    磁盘满了。依赖在磁盘创建临时文件基本收到影响,
    报告/tmp 空间满了后,一大堆软件受影响
    flyqie
        13
    flyqie  
       2 天前
    这个其实蛮正常的。

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

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

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

    都是干这个用的
    FrankAdler
        19
    FrankAdler  
       1 天前
    /usr/bin/journalctl --vacuum-size=50M 放定时任务把
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2831 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:44 · PVG 21:44 · LAX 06:44 · JFK 09:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.