我使用Linode来托pipe一个名为“Shopp”的电子商务插件的WordPress博客。
我几天前从一个以前的共享主机帐户(资源比Linode VPS更less)移动了该网站。
这个问题在以前的主机上没有发生。
每隔几个小时(大约10-11小时不等),我可以看到带宽峰值(“正常”stream量约为400k-600k / s)为1.1mb / s。 同时我可以看到,I / O和SWAP也达到10k-20k之间,导致服务器基本locking。 它locking大约30到40分钟,或者直到我重新启动它。
我已经打开了mysql的慢查询日志,看看我能得到任何线索,但不幸的是所有的查询logging似乎正常(像'select列,从table1其中id = 1',另一个例子,引起了我的眼睛在慢查询日志是'设置名称utf8')。
我怎样才能调查是什么造成这个问题? 有没有一种方法可以肯定地知道问题来自数据库,或者可能是服务器上的一个PHP文件?
从这里继续下去的最好方法是什么?
PS:运行Ubuntu 10.04,32位,最新的mysql / php / apache2和使用Linode 1024
找出这样的问题是最容易的,当服务器有一个不好的时刻。 如果可以将它钉在CPU,内存或磁盘上,它会有所帮助。
这听起来像内存是问题,虽然。 也许新主机上的mysqlconfiguration太过分了? 确保你的key_buffer和innodb_buffer_pool_size组合不是你的内存太多,尤其是因为它不是一个专用的数据库机器,而且apache需要相当数量的内存来继续提供httpd进程。 Mysql会随着时间的推移使用你所允许的每一个内存位,所以可能需要10-11个小时才能填满这些缓冲区。
我也会在apache中检查你的keepalive设置,这些会对内存使用量产生巨大的影响。 我通常设置很低或完全closures。
在这个网站上有很多QA资源供你select,首先你需要找出你实际的限制器是什么,你提到SWAP,所以我猜你有一个内存问题。
为了获得更好的帮助,您需要为可能想要帮助的人员提供一些诊断信息,例如:从top输出的初始信息。
这可能听起来不对,但是可以通过调整Apache / MySQL安装来在硬件限制内更好地工作,从而提高性能和行为。