黑夜给了我黑色的眼睛,我却用它去寻找光明。——《荣耀》

月度归档: 2024 年 6 月

  • 绝区零兑换代码

    绝区零兑换代码

    兑换码:ZZZFREE100

    开始时间:7🈷️4日

    结束时间:7🈷️12日

  • 为什么我会有内存焦虑的感觉?

    这个事情,得从网站搬迁到1Panel的时候说起。

    我的网站迁移至1Panel后,感觉磁盘空间节省了25%,而且对比宝塔面板,他的源代码完全开放,任何人都可以审查源代码的安全性。

    有一天,我更新了OpenResty的版本,很不幸,这个版本有内存泄露的Bug,几天后,我收到了最新版本的OpenResty的更新,新版本已经修复了这个问题。

    6月9日~14日,网站发生宕机事件,重启后,在后台监控看到磁盘IO被占满,与此同时,内存也被占满了。经过排查,是内存用完用SWAP,导致硬盘IO被占满,从而导致服务器宕机。

    现在,在服务器运行的容器从十几个被砍到5~7个,才有了转机。对此,我对内存被占满的问题感到担忧。

  • 为什么我是从 MySQL 用户迁移到 MariaDB 用户

    为什么我是从 MySQL 用户迁移到 MariaDB 用户

    这个故事,还得从4月末开始讲起:

    第一章:从宝塔面板迁移至 1Panel

    4月末,站长开始了宝塔面板替代计划,计划从宝塔面板迁移至 1Panel。当时, WordPress 的迁移用的是 Updraft Plus 插件恢复的,而宝塔面板的备份突然不灵了,备份网站没问题,但是备份数据库变成 20KB,所以不得不使用基于 Rclone 的备份脚本。迁移的时候数据库用的是 MySQL 8.2,当时没什么问题。

    第二章:频繁宕机

    在过去几天,服务器遭遇频繁宕机,本以为是 OpenResty 吃掉了太多的内存,后面经过更新后,OpenResty 也不吃内存了。后面经过一段时间的运行,网站也崩溃了。在经过与飞致云的社区人员交涉,原来是 MySQL 8.2 的内存优化太差了。

    第三章:粉转黑

    从此以后,我已经从 MySQL 的用户转成了 MariaDB 的用户,从此以后,再也没有使用 MySQL, 甚至在使用 Docker 镜像的时候也会对 MySQL 比较排斥。

  • 服务器频繁宕机的背后,是一个有Bug的更新

    在经历上一个版本的 1Panel 的 OpenResty App 更新,服务器出现了频繁宕机,磁盘读取经常被占满。后面经联系阿里云客服,得知是内存被占满后调用了 SWAP,最后导致硬盘读取被占满。

    第一章:噩梦的开始

    4月底,服务器迁移到了 1Panel,当时服务器一直在运行着 WordPress、 Yourls 和 FreshRSS。

    5月21日,服务器发生了宕机事故,当时以为服务器是中了病毒,于是,服务器执行了重启。

    第二章:求助

    当我遇到这个症状后,向飞致云论坛的管理员求助:

    https://bbs.fit2cloud.com/t/topic/5411

    当时,这个问题是普遍性的Bug,后面,飞致云的管理员向我问了一些问题,我把当时发生的情况如实报告给了管理员。

    第三章:真相大白

    今日,飞致云发布了 1Panel 1.10.10 版本更新,同时发布了 OpenResty 1.21.4.3.-3-2-focal 镜像版本,这次更新修复了一个内存泄露的 Bug。真相大白,原来是 OpenResty 的内存占用高的离谱,现在已经修复了。

    总结

    总之,服务器经常宕机的原因是 OpenResty 的内存占用高的离谱,内存用完后用了磁盘的 SWAP,最后导致磁盘读取被占满的 Bug 出现了。