如何确定我的 MySQL 服务器需要多少内存?

如何确定我的 MySQL 服务器需要多少内存?

我有一个专门用于 MySQL 的虚拟服务器,用于运行一些应用程序。这是一个 256 MB 的服务器。目前里面几乎没有任何数据,但free -m显示了完整的内存使用情况:

             total       used       free     shared    buffers     cached
Mem:           245        197         47          0         23        120
-/+ buffers/cache:         53        192
Swap:          511          2        509

这是在 Ubuntu 10.04 上。所有配置设置都是默认的 IIRC——键缓冲区是 16,查询缓存是 16。(我可能遗漏了一些

因此,在我看来,在几乎没有任何数据并且缓冲区没有特殊设置的情况下,我应该使用远低于 256 的值。256 是否只是目前 OS + MySQL 所需的下表?

答案1

正如 Jeff 所说,Linux 上的使用数字可能会令人困惑。Linux 会自动在 RAM 中保留您访问的文件的副本。如果您再次需要它们,访问它们比返回磁盘更快。如果运行程序需要更多 RAM,则可以完全丢弃这些缓存项目。这是有道理的。不幸的是,该free命令以包含这些缓存文件的方式向您显示数字,并使您看起来几乎用完了 RAM。

您确实应该多看看第二行,而不是第一行。第二行是不包括缓冲区/缓存数据的内存使用情况。在您的例子中,它显示您正在使用 53MB,并且有 192MB 可用。——


Christopher Karel

答案2

RAM 用于将常用位存储在比硬盘更快的存储器中。空闲的最右侧列表示一半的 RAM 被用于从硬盘缓存。

如果您没有使用所有 RAM,那么您就是在浪费资源。在内存不足的情况下删除缓存几乎是免费的,而如果某些内容未缓存,则从磁盘读取的速度会慢几个数量级。

相关内容