新开发的网站程序部署在Linux系统云服务器上,隔几天经常出现数据库链接失败,远程服务器查看发现数据库进程异常停止。经过排查发现是物理内存不足导致,记录排查过程,以免下次自己遇到时忘记怎么操作,同时也给有需要的同学提供一丢丢帮助。
使用SSH工具远程登入服务器执行如下命令
dmesg -T | grep -i 'killed process'
发现多行Out of memory: Killed process(内存不足:进程被杀死)错误日志

日志关键信息
[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,则建议升级内存)
总结
通过设置虚拟内存,并升级服务器内存,彻底解决数据库异常停止导致网站打不开

