我有一个类似的VPS和1GB的RAM。好的,霍斯特说它有1GB,但我不能检查它是“空闲”的,其他类似的命令返回13 1GB,我猜这是一个物理内存的大小。
当我执行top命令时,我看到以下输出:

正如您所看到的,mysql是一个使用大量RAM (1.43M)的进程。所用RAM的总尺寸约为160 m。问题是我不能使用更多的内存:如果我扩展了一些内存设置(例如mysql),我就会得到“内存不足”、“无法分配内存”等。
我有两个猜测:
还有其他的想法,我可以如何使用更多的内存用于mysql (我想使用大约80%的1Gb)?
发布于 2011-07-20 04:54:58
您有一个Virtuozzo (或OpenVZ) VPS --它不适用于正常的内存分配规则。假设您的托管提供商没有欺骗您,您“拥有”1GB内存,因为OpenVZ“管理程序”将允许您分配1GB内存,或者(更可能的情况是,根据您对事件的描述) 1GB的虚拟内存。
仅仅因为没有在顶部看到任何交换,并不意味着所有的数据都在物理内存中--对于OpenVZ来说,规则是不同的(非常、非常不同)。
如果您想要为MySQL使用更多的内存,那么您必须减少VM中其他东西正在使用的内存量。您的最高输出没有列出任何明显的竞争者,但是如果您按内存使用情况对其进行排序,您将更好地了解什么是多余的(并且会给您带来最好的回报)。
顺便说一句,我建议离开你现在的托管提供商--虽然OpenVZ有它的位置,但那个地方并不在VPS托管市场。你可能选择他们是因为他们是一个廉价的提供者,但你正在学习为什么他们便宜- OpenVZ是一个非常受限的平台,它有自己的一套相当奇特的怪癖。使用“真正的”VPSes (使用Xen、KVM、VMWare等的人)的提供者要好得多。
发布于 2011-07-20 07:19:37
除了前面已经说过的内容之外,您可能还需要检查/proc/用户_串珠计数器,它包含有关VPS的资源消耗的信息。
https://serverfault.com/questions/292093
复制相似问题