我有一个VM上的Mysql服务器
16核CPU
59 GB RAM
Ubuntu 13.10
- linux +如何知道什么时候swapoff -a应该结束
- Ubuntu内存消耗
- 使用ps命令中的VSZ监视Redhat服务器上进程的内存是否合理?
- Ansible抛出一个“错误! 一名工人被发现处于死亡状态“的错误
- 上传大图时Nginx错误502
Mysql版本是5.5.37
这是一个只用于报告目的的从数据库。
因为原来Mysql的innodb_buffer_pool_size(49G)那么大的服务器使用SWAP。 所以我将innodb_buffer_pool_size设置为35G,然后重新启动服务器(10/12)。 但是,RAM使用率在两天后逐渐变高,几乎是物理RAM的90%。 我认为这是没有道理的,因为innodb_buffer_pool_size是35G和其他的MySQL操作将不会使用这么多的RAM。
如果服务器有交换,我担心数据库性能。 但是我不知道如何阻止Mysql的内存使用。 我不明白为什么它逐渐使用这么多的RAM。
服务器在几天后的第二次重启(11/28)后开始交换
有人可以给我一些提示,以确保MySQL服务器不会逐渐具有较高的RAM使用率? 或者有什么我需要考虑的。 Ubuntu有一些会导致RAM消耗的设置吗?
非常感谢。
内存使用
Mysqlconfiguration:
https://gist.github.com/crokobit/7c329e48dc5ab234c0b1812248ff77cf
从my.cnf注释掉这些行:
sort-buffer-size = 4M read-buffer-size = 2M read-rnd-buffer-size = 2M join-buffer-size = 4M
如果是专用的mysql服务器,请将缓冲池设置为高达50G,检查NUMA设置并进行相应的configuration。
将系统swappiness更改为1( 如果您使用的是较新的内核 )
升级到最新的MySQL版本,你的可能会受到一些内存泄漏错误的影响。
有没有魔术“使用更less的RAM开关”,所以通常系统pipe理的东西适用于了解正在发生的事情并采取适当的行动。 科学的方法是你的朋友
如果你自己pipe理不了,那就聘请一名专业人员(DBA /系统pipe理员),这个专业人员可能会比你自己想要做的更便宜。