1

我在具有 1GB 内存的 VPS Windows 2008 Web 服务器上安装了 MySQL。

有没有办法为 MYSQL 设置最大内存使用限制。

如果可以通过它完成,我已经安装了工作台。

非常感谢

约翰

4

1 回答 1

2

如果你真的想强加一个硬限制,你可以这样做,但你必须在操作系统级别这样做,因为没有内置设置。在 linux 中,您可以使用 ulimit,但您可能必须修改 MySQL 的启动方式才能强制执行此操作。

最好的解决方案是调低你的服务器,这样通常的 MySQL 内存设置的组合将导致你的 MySQL 安装的内存使用量通常较低。这当然会对数据库的性能产生负面影响,但是您可以在 my.ini 中调整的一些设置是:

key_buffer_size
query_cache_size
query_cache_limit
table_cache
max_connections
tmp_table_size
innodb_buffer_pool_size

要在 Linux 中绘制内存使用情况,您可以轻松地使用脚本

while true
do
  date >> ps.log
  ps aux | grep mysqld >> ps.log
  sleep 60
done

如果您正在尝试检查与表缓存相关的分配运行“FLUSH TABLES”并查看内存使用量何时下降。

请注意,由于内存是如何从操作系统分配的,您可能看不到“VSZ”下降。相反,您可能会看到定期刷新表或减少表缓存会减少内存消耗,这是有原因的。

检查 Innodb 分配了多少内存通常很有帮助。事实上,这通常是我首先要做的事情之一,因为它的侵入性最小。运行SHOW ENGINE INNODB STATUS并查找内存信息块

于 2013-05-16T12:15:17.953 回答