我有一台运行 Ubuntu 的 2GB RAM VPS。这台服务器上有三个网站使用数据库 - 两个使用 WordPress,一个使用自定义脚本。它们每天的点击量都不超过几次。
MySQL 的 RAM 使用率一直很高 - 通常约为 25%。虽然不是很高,但与其他使用 1% 或 2% 的进程相比,它看起来很奇怪。
今天我将操作系统升级到 Ubuntu 16.04,现在 MySQL 使用的 RAM 更多了 - 目前停留在 42%。
我的问题是:这正常吗?有很多关于最小化 MySQL 内存使用的帖子,但我不知道这是否有必要。毕竟一半的 RAM 仍然是空的。
答案1
不,这不正常。这是由错误引起的从 5.7.8 开始,memory/innodb/os0file 中使用的内存过多。
在 Ubuntu 中它被跟踪为Ubuntu 16.04 中 mysqld 守护进程的内存消耗过多,还有Reddit 上的讨论。
答案2
为了解释差异,您需要将当前的 MySQL 配置与之前的配置进行比较。
查看 /etc/mysql/my.cnf 以了解不同的分配缓冲区大小。在大多数配置中,最大的是innodb_buffer_pool_size
。