今天一台linode最低配置的服务器出现宕机故障,可以ping通但是端口都不能访问。当收到报警邮件的时候,首先想到是不是IP被墙了(你们都懂得,linode总是特别容易受到照顾)。登录香港服务器ssh远程连接linode服务器,发现也一样不能访问,说明是服务器出问题了。因为不能远程无奈只能重启服务器,重启后登录查看故障原因。
从后台监控程序发现该时间段CPU和IO都有异常升高的情况。
难道服务器被黑有人在挖矿?检查进程后确定没有。
查看系统日志,发现在这个时间点有一次dnf makecache的动作,之后系统也没有再生成新的日志。
然后我在服务器上手动运行dnf update,故障还原了,直接宕机,发现确实是dnf/yum 命令引起的系统宕机。但是为什么dnf/yum安装软件包的命令会造成系统宕机呢?
其实从下面这张图就可以看出,原来运行yum命令后系统内存告急,out of memory了。
那么这次系统宕机的直接原因就是yum-cron计划任务执行dnf/yum命令引起服务器内存不足,触发系统oom机制,最后导致系统假死卡死宕机。AlmaLinux 9上dnf/yum原来那么消耗内存。
解决办法要么升级服务器配置,要么就是加大swap虚拟内存。对于买最低配置的我来说,肯定是临时增加swap了。
mkdir /swapfile cd /swapfile if [ ! -e /swapfile/swap ];then dd if=/dev/zero of=swap bs=1024 count=2000000 mkswap -f swap echo "/swapfile/swap none swap defaults 0 0" >>/etc/fstab fi mount -a swapon -a free -m
运行yum update,一切正常了。
订阅评论
登录
0 评论