1031 日 , 2021 9:56:29
记一次网站罢工

是的,我写下这段文字的时候,这个网站的访问刚刚恢复过来,在此之前大约一天时间里,如果你访问这个网站,你只会看到错误提示“与数据库的连接出现异常”。也就是说,网站的罢工其实是数据库罢工。

看一下MySQL服务的状态才发现,这个服务已经挂掉了。其实这个问题在前一个周左右时有发生,每次重启一遍系统就好了。但这次不一样,重启之后没多久就又挂了,总不能我随时盯着吧?况且Google Search Console都给我发邮件警告了,说再不修就给我从搜索结果里去掉(废话,网站都挂了还有什么资格出现在搜索结果里)。

查看MySQL的日志,发现有一条很关键的信息:

[ERROR] InnoDB: Cannot allocate memory for the buffer pool

又考虑到承载这个网站的是一台单核1G内存的VPS,嗯,果然是内存不足了。Google了一通,发现改buffer size到64M也没用,即使内存剩余大约100M。但其他所有情况都符合出这个错误的情形。

突然想起前两天为了弄邮件服务器,偷懒搞了个docker,用是能用,但镜像一跑起来,直接内存爆炸然后镜像和MySQL全崩掉(不知道为啥Nginx还正常)。那之后把镜像停了,不过好像也是自从那个时候才出现的偶然连接异常。

又想起来我只是把镜像停了,docker还在后台运行,遂service docker stop,这下不用改buffer size也能运行了,剩余内存多了惊人的200M,MySQL终于能正常地跑起来了。

评论

  1. 8月前
    2021-11-01 10:50:26

    MySQL 总感觉特别娇贵经常因为内存崩掉…
    我觉得把 swap 分区搞大点比较保险 =_=

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!