记录网站部署在Linux系统下Mysql进程经常异常停止排查过程

温馨提示:文章已超过205天没有更新,可能存在链接失效,相关教程仅供参考

新开发的网站程序部署在Linux系统云服务器上,隔几天经常出现数据库链接失败,远程服务器查看发现数据库进程异常停止。经过排查发现是物理内存不足导致,记录排查过程,以免下次自己遇到时忘记怎么操作,同时也给有需要的同学提供一丢丢帮助。

使用SSH工具远程登入服务器执行如下命令

dmesg -T | grep -i 'killed process'

发现多行Out of memory: Killed process(内存不足:进程被杀死)错误日志

image.png

日志关键信息

[Mon Oct 27 10:20:47 2025] Out of memory: Killed process 375037 (mysqld) total-vm:1680632kB, anon-rss:234200kB, file-rss:21472kB, shmem-rss:0kB, UID:1001 pgtables:736kB oom_score_adj:0

Out of memory: Killed process:内核因内存不足触发 OOM Killer,强制终止进程。

process 375037 (mysqld):被杀的是 MySQL 主进程。

anon-rss:234200kB:该进程实际使用的物理内存(匿名页,即堆、栈等)约 234 MB。

total-vm:1680632kB:虚拟内存总量约 1.6 GB(但虚拟内存不等于实际占用)。

UID:1001:运行 MySQL 的用户 ID。

oom_score_adj:0:该进程被 OOM Killer 选中的“优先级权重”为默认值(越高越容易被杀)

因为整个系统内存耗尽了即使MySQL只用了 200~500MB 内存,也可能被杀,并不是MySQL自身内存配置过大

解决方案

1、创建虚拟内存

# 创建 2GB Swap(适用于无 Swap 或 Swap 太小的情况)

创建2G的虚拟内存
# dd if=/dev/zero of=/tmp/netdisk bs=10M count=200
# mkswap -f /tmp/swapfile
# chmod 600  /tmp/swapfile 
挂载
# swapon /tmp/swapfile
加入开机自启
echo '/tmp/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab

2、升级云服务器内存(如果内存≤ 2GB,则建议升级内存)

总结

通过设置虚拟内存,并升级服务器内存,彻底解决数据库异常停止导致网站打不开


© 除非注明,否则均为阿豪运维笔记原创文章,转载或复制请以超链接形式并注明出处

取消
微信二维码
微信二维码
支付宝二维码