在将我们的内存+物理内核丰富的数据库服务器切换到大页面之后,我们发现了一个小问题。
内存使用几乎看起来像是有某种内存泄漏。
但运行FLUSH TABLES清除大约10G内存(取决于当然我们运行的时间,以及我们等待的时间)。
附上的是一个显示这种内存使用情况的图表。
是什么原因导致我们每隔两天强制刷新表?

有关附表的说明:
a)图表一开始就很好的平面内存使用情况是当我们运行(Oracle)MySQL 5.6时没有大页面。
b)10-11之间的内存使用倾向是当我们运行Percona 5.6的大页面时。 在11月底,我们从Percona切换到Oracle MySQL 5.6(但决定留下大页面)。
c)12-14.5之间的内存使用倾斜是我们回到(Oracle)MySQL 5.6启用了大页面的时候。 我们认为这种增加的内存使用是由于Percona内存泄漏造成的。 这就是为什么我们切换回(Oracle)MySQL 5.6。 保持大页面。
d)14.5左右的内存使用率下降是我们第一次尝试运行FLUSH TABLES(此时还在运行Oracle MySQL 5.6,不重启,只是做一个简单的FLUSH TABLES)。
经过这种来回切换,我们已经知道,原因不是percona 5.6,而是大页面。
所以,总结一下:
什么是迫使我们每隔2天运行一次FLUSH TABLES,以防止大页面启用内存不足?
我知道我们可以在非高峰时间安排一个FLUSH TABLES,但是想要正确地解决这个问题。
谢谢!
我不认为这是内存泄漏。 简单的说,如果没有大页面,你的内存使用量会达到一个上限(上限),这就是为什么内存使用看起来很平坦。 切换到大页面之后,MySQL可能已经能够更好地利用可用的内存。 系统没有交换。 我会说密切监视和停止冲洗桌子。