2013-10-24 68 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