发现
上午使用某个服务时发现无法连接了,遂认为服务器有日常不明原因跑满内存了,下午才想起来
排查
下午想起来就照例ssh登录,按上午猜想,是不能登陆的,但神奇进入了。后台正常登录后,排查博客,浏览器一打开,提示数据库错误,
好吧,数据库问题,使用docker指令查看所有容器,发现数据库一直在重启,退出代码是137,问gemini,说是内存不足,遂停止所有docker容器,然后内存占用还是下不了,宿主机一看,一个叫mariadbd的进程占用22%的内存,发给gemini分析,说这个是管理容器mariadb容器的进程,不能杀,建议在dockers管理其生命进程:disappointed_relieved:
那行,就删除所有mariadb相关容器(数据映射到宿主机了,所以可直接删除容器),发现这个玩意还在,又问gemini说可能成孤儿进程了,可以宿主机杀掉,但得确认是不是来自docker,使用以下指令:
cat /proc/mariadbd进程id/cgroup
返回以下内容(其中一行)
0:pids:/system.slice/docker-0c8a3889b70f03a6a978d380721245e3f48c08233f2c525f77839e559385b0d8.scope
和之前的mariadb容器的id也对上了,确定是docker的,就直接kill了
docker compose up -d新建问题mariadb容器,观察一分钟后无137退出代码重启,问题解决
问题分析
猜测是上次服务器莫名其妙跑满cpu和内存时,我强制重启造成这个孤立进程,然后内存占用一直在,这次某个原因导致mariadb崩溃,一直重启

Comments NOTHING