服务器经常莫名死机和后遗症
不堪重负
在腾讯云买的 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
加入评论