我在具有 1GB 内存的 VPS Windows 2008 Web 服务器上安装了 MySQL。
有没有办法为 MYSQL 设置最大内存使用限制。
如果可以通过它完成,我已经安装了工作台。
非常感谢
约翰
如果你真的想强加一个硬限制,你可以这样做,但你必须在操作系统级别这样做,因为没有内置设置。在 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
并查找内存信息块