这台服务器是使用太多的内存还是虚拟内存? (屏幕附上)

我有一个VPS与512MB RAM 40GB存储1CPU,我运行一个小的域名停放服务。

它在CentOS,MySQL,Apache等。

现在,我的托pipe服务提供商声称我的服务器将过多的负载存储系统 ,他们不得不重置我的实例,并要求我优化服务器,因为它正在放慢存储上的其他客户端。

全域的文件(www文件夹)低于100MB!

我环顾四周,看不出什么会导致这种“存储滥用”,他们说这是写在存储上的虚拟内存,几百MB。

  1. webmin屏幕中显示的不正常吗?
  2. 它是否显示附加的“top”命令中有任何问题? (例如mysqld的772MB虚拟内存)。

我知道的唯一的重载是一个小时运行一次的PHP脚本来处理所有域的统计信息,需要3分钟才能完成,似乎把CPU的工作:)

编辑:我添加了顶部命令的第二个屏幕显示进程列表上方的缺失数据。

Webmin中显示的内存使用情况

顶部命令输出

顶部命令输出2

这只是一个猜测,但是评论太长,所以在这里。

借助虚拟专用服务器,您可以获得真正服务器的“片段”。 而不是在24台512MB内存的小型服务器上花费500美元,而购买(和运行)一台售价为3500美元的内存为12GB的服务器和两个六核超线程处理器则更为便宜。

诀窍是:该服务器可能销售超过24片。 这没问题,他们不希望每个人都使用所有的资源。 如果你有足够的这些,你可以分析你的客户,并悄悄地把客户转移到你确信他们不会踩到对方脚趾的configuration – 至less在正常情况下。 再次,这是正常的做法,没有什么错,只要仔细做就行了。 有可能导致工作exception,导致问题,但这是使这是一个成本效益的select的一部分; 如果您希望在不可能的情况下使用服务,则需要付更多的费用,例如在可用空间中租用物理服务器等服务。

现在我的猜测。 当他们超额订购服务器太多时会发生什么? 有人拿着棍子的短端,只有虚拟资源。 他们的“RAM”实际上是完全磁盘备份的,必须来回交换。 通常这是在所有的机器中传播,但在正确的情况下,其中一个可以被冷落。 那是你。 从他们的angular度来看,你的机器正在做奇怪的事情。 看起来他们的监控工具就像你是恶棍,当真的你是受害者。 一个好的提供者会认识到这一点,但是一个好的提供者重置你的实例之前也会告诉你。

看看顶级命令输出中的virt字段。你的VPS有512MB的内存,但是apache需要很大的内存,这可能解释了为什么你有4GB的虚拟内存。 随着所有这些Apache线程,虚拟内存将不断交换,这是导致高IO。

为什么apache消耗这么多的内存? 首先检查apache日志,看看是否可以发现任何不寻常的事情。 如果您发现任何问题,请回复,包括样品,也许我们可以提供更具体的帮助。

难道这是你的PHP脚本来build立统计信息没有正确终止,但是我认为你已经把你的PHP最大执行时间设置为合理的,以防止你的脚本失控?

重新启动Apache,并监视内存使用情况,需要多长时间才能开始消耗大量的交换空间? 你的正常运行时间大概是7个小时,不是很长。

我不知道你的PHP网站的细节,但我想像一个简单的域名停放站点不应该使用太多的资源。 我有一个我们公司使用的VPS,它运行一个内部开发的应用程序,它有一个MySQL后端,每天大约有30名员工大量使用它,而且不会占用你所拥有的内存。

从负载平均值来看,你的CPU使用率相当高,但这可能仅仅是因为交换的原因。 用Apache消耗这么多的内存来分类问题,我相信事情看起来会好很多。

另外,改变你的主机,他们不应该没有警告重置你的实例。 这是不可原谅的。

你的httpd进程占用的内存比实际可用的要多,因此必须交换内容。 (另外有趣的是,在屏幕截图中,你截断了顶部,并在第二次截图之前重新启动了Apache。你在隐藏什么?)你需要大幅减less系统的内存使用量,同时httpd进程,或获得更多的内存。

也就是说,主持人应该对这种事情进行限速,这并不难; 也许他们只是不知道如何? 当你决定获得更多的RAM时,你也可以获得一个新的主机。