Ubuntu 16.04 上出现“内存不足:终止进程 1190 (mysqld)”

Ubuntu 16.04 上出现“内存不足:终止进程 1190 (mysqld)”

我在具有 1GB RAM 的 Ubuntu 16.04 服务器上定期收到以下消息:

[4768052.693699] Out of memory: Killed process 1190 (mysqld) total-vm:2037464kBB

命令

ps -eo pmem,pcpu,rss,vsize,args | sort -k 1 -r | head -10

显示MySQL使用了31.1%的内存(不清楚是虚拟的还是RAM):

4.9  3.7 49324 1240772 node server.js production
4.2  0.1 42536 565796 php-fpm: pool slogpost
3.9  0.2 39068 566092 php-fpm: pool slogpost
3.2  0.2 31960 559592 php-fpm: pool devnote
3.2  0.2 31868 559736 php-fpm: pool devnote
31.3  0.5 310552 1381224 /usr/sbin/mysqld
2.7  0.3 27548 270584 php-fpm: pool beauty
2.6  0.3 25960 269612 php-fpm: pool beauty
1.0  0.0 10400 171716 (squid-1) -YC -f /etc/squid/squid.conf

命令

free -m

显示使用了 1023 个交换空间中的 461 个:

            total        used        free      shared  buff/cache   available
Mem:            968         544          59          48         363         182
Swap:          1023         461         562

1)在这种情况下常见的做法(或解决方案)是什么?

2) 我可以进行哪些诊断?如何确定应该为 MySQL 分配多少内存?以及如何确定哪个数据库使用了多少内存?

3)在什么情况下我应该增加RAM或交换?

4)将 RAM 增加到 2GB 是一个好主意吗?

相关内容