6

我不确定 stack 是否适合问这个问题,但我最近从 5.5 升级到 Percona 5.6,我的内存使用量猛增!

这是来自PS:

mysql     4598  0.0 29.5 1583356 465312 ?      Sl   Oct17   9:07 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib6

我在专用的 VSS 上

我的服务器只有一个内存...根据 PS,这只是内存使用量的 30% 怎么办?

我在配置中将我的 ram 设置为小于这个,当我运行 MySQLTuner 时,我得到:

[OK] Maximum possible memory usage: 338.9M (22% of installed RAM)

那么我如何使用将近 500MB 的物理内存和超过 1.5 的虚拟内存呢?

这是 mySQL 中的错误还是我的服务器中的错误?

4

3 回答 3

8

发现在 mysql 5.6 中 performance_schema 默认是打开的。在 5.5 及之前的版本中默认禁用它。自 5.6.6 起默认启用

performance_schema=off 到我的配置文件解决了这个问题。

我想任何没有内存来运行 performance_schema 的人都不会使用它。

这也可能影响 mysql 5.6.6 的其他发行版。

于 2013-12-04T21:20:25.630 回答
2

我遇到了这个问题,在 MySQL.ini 中修复了一些(增加的)缓存值解决了这个问题。

table_definition_cache - 设置为 400

从“ http://bugs.mysql.com/bug.php?id=68287 ”讨论这个

是的,存在基于 table_open_cache 和 table_definition_cache 和 max_connections 的阈值,超过阈值会导致使用的 RAM 大幅增加。阈值首先确定服务器大小是小、中还是大。

小:所有三个都等于或小于默认值(2000、400、151)。大:三个中的任何一个都是默认值的两倍以上。介质:其他。

从记忆里。我的设置为 2000+ 并丢弃它来解决问题。

于 2013-12-04T03:48:20.480 回答
0

在 CentOS 上帮助我的是更改内存分配器:

yum install jemalloc-devel

并添加到 my.cnf:

[mysqld_safe]

malloc-lib = /usr/lib64/libjemalloc.so.1
于 2016-02-16T02:09:03.930 回答