服务器经常莫名死机和后遗症
不堪重负
在腾讯云买的 1c2g 6m
的轻量云不知道是不是服务架的太多还是什么原因,今年开始频繁出现死机、无反应的情况,死机的时候也无法通过 ssh 登录终端,且出现这种情况后搭建的所有应用会全部挂掉,腾讯云控制面板里的监控这一段的信息为空白。
根据腾讯云提供的 云服务器无监控数据排查手册 指引,结合监控面板的数据来看不排除是负载过高。
- 系统内存占用比常年处于 80% 左右
- CPU 负载基本维持在 20% 左右。
- 储存空间上次出现这个问题后清除了 docker 的一些日志后从 98% 掉到了现在的 89%。
- 宽度负载最高 4m 左右,平均 1.58
目前看来性能可能的确到了瓶颈,这台机器用了也有五六年了,的确该换了。
机器是今年 11 月底过期,先凑合用着,等到了 618 或者双 11 蹲一个性价比高的机器看看。
后遗症
昨天死机后重启服务器,发现提示主题确实,当时还没太注意。
今天早上发现 Ghost 版本好像不对,进终端检查了一下,发现 docker 里的 Ghost 没启动成功,但是访问博客却可以访问。
之前也遇到过这个情况,服务器在重启后 ghost-cli 会提前运行 安装版
的博客,因为占用了端口导致 docker版
的 ghost 无法运行,所以我用 ghost-cli 停止了安装版本的运行,重新用 docker run 运行 Docker 版本。(为了避免以后再次出现这种情况,我们用 ghost stop --disable
告诉 ghost-cli,不要在系统启动时启动 ghost 服务。)
但是运行失败,系统提示数据库 connect ECONNREFUSED 127.0.0.1:3306
。不能链接数据库?不对啊,我的 umami 也是用的同一个数据库,且正常运行的,只能一个个排查问题
- mysql 是不是没启动?
用sudo service mysql status
查看,发现数据库是正常运行的,而且我的 umami 也是正常的,pass - 端口是不是不对
我用 MySQL 命令可以直接登录,且netstat
看 3306 端口是有监听的。 - docker-compose 的配置文件是不是不对?
文件没动过,只有里面的数据库地址是localhost
而错误提示里是127.0.0.1
,试着改成错误提示里的 127.0.0.1,重新docker-compose up -d
后还是出错。 - mysql 的用户权限是不是不对?
用select host,user from user
看 ghost 数据库账号的 host 信息,发现是 localhost,通过 update 命令改成%
,还是不行。
解决
各种办法都排查了一遍,找资料的过程中发现一篇文章中说用 mysqld --console
看运行信息,发现报错信息如下:
2023-05-28T02:18:14.764463Z 0 [Warning] [MY-010091] [Server] Can't create test file /var/lib/mysql/mysqld_tmp_file_case_insensitive_test.lower-test
2023-05-28T02:18:14.769927Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.27-0ubuntu0.20.04.1) starting as process 332596
2023-05-28T02:18:14.808340Z 0 [Warning] [MY-010091] [Server] Can't create test file /var/lib/mysql/mysqld_tmp_file_case_insensitive_test.lower-test
2023-05-28T02:18:14.808352Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /var/lib/mysql/ is case insensitive
2023-05-28T02:18:14.824753Z 0 [Warning] [MY-010122] [Server] One can only use the --user switch if running as root
2023-05-28T02:18:14.824785Z 0 [ERROR] [MY-013276] [Server] Failed to set datadir to '/var/lib/mysql/' (OS errno: 13 - Permission denied)
2023-05-28T02:18:14.824942Z 0 [ERROR] [MY-010119] [Server] Aborting
2023-05-28T02:18:14.841286Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.27-0ubuntu0.20.04.1) (Ubuntu).
用 mysqld --initialize-insecure
初始化后,发现可以正常访问了。但是我重新运行 mysqld --console
后发现错误信息依旧,所以不排除是我上面的其他步骤修好的。
不过算是弄好了。
END
加入评论