2013-10-24 67 views
6

我不确定堆栈是否适合问这个问题,但我最近从5.5升级到Percona 5.6,内存使用量猛增!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

我的服务器只有RAM的演出......这是怎么只有内存使用情况根据PS只有30% ?

我有我的公羊组在配置小于这一点,当我运行MySQLTuner我得到:

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

所以我怎么使用的几乎500MB物理内存并在演出半虚拟?

这是一个错误在mySQL或与我的服务器?

+0

使用PMAP我发现匪徒,有2个巨大的ANON内存分配发生的事情,我不知道为什么 00007fb73b65c000 403088K RW --- [匿名] 00007fb731c2a000 155748K RW --- [匿名] 反正弄清楚为什么这款内存是人位于? – dprogramz

回答

8

发现在MySQL 5.6中performance_schema默认是开启的。默认情况下,它在5.5和之前被禁用。它已被默认启用,因为5.6.6

performance_schema =关闭到我的配置文件修复了这个问题。

我想象没有内存的人运行performance_schema反正不会使用它。

这可能会影响MySQL 5.6.6的其他发行版。

+1

这是特定于MySQL 5.6的。在这里查看MySQL 5.7及更高版本:http://mysqlserverteam.com/new-in-mysql-5-7-performance-schema-scalable-memory-allocation/ –

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+,然后将其排序。

0

什么帮助了我是在CentOS正在改变内存分配器:

yum install jemalloc-devel 

,并添加到my.cnf文件:

[mysqld_safe] 

malloc-lib = /usr/lib64/libjemalloc.so.1