我在Fedora 15上运行一个非常标准的LAMP栈,主要是支持一些Drupal站点。 事情似乎一切正常,但有时机器上的磁盘将开始比通常情况下更难工作。 我有限的系统debugging技巧已经发现:
“top”报告说httpd和mysqld确实是活跃的,占其他大部分空闲机器的3-4%。
httpd日志文件中没有任何更改,其他系统日志中没有任何exception显示。 所以“有人打你的网站,假人”这个明显的答案似乎并不是这样。
用“apachectl graceful”重置httpd没有任何作用。 然而,“apachectl stop”后跟“apachectl start”通常会使机器停止运转 – 磁盘搅动停止。
我相信机器是安全的; 我没有理由相信有任何骇人听闻的事情发生。 (当然,我想通常是这样的…)
如果这足以让某人告诉我发生了什么,我会感到惊讶(但是很开心!),但是有没有什么build议可以让我更深入地研究一下机器,并弄清楚发生了什么? 谢谢!
什么是偶尔? 你应该设置一个cron工作来打击/cron.php Drupal的家务。
检查root用户或apache(或www-data)用户的crontab -l以查看是否存在可以关联到磁盘活动的cron作业。 cron作业也可以在/etc/cron.d/drupal.cron(或者其他文件)下。 你应该在你的Apache访问日志中看到这些/cron.php请求,所以我假设“httpd日志文件没有变化”,你的意思是没有外部请求,并没有从字面上没有改变。
在将来,您应该在服务器上收集指标(例如Cacti,Munin),以便您可以确定什么是正常的,哪些不是。
这种行为可以与使用交换结果的物理内存和内核一致。 检查输出:
free -g free -m
如果在增加的活动发生时运行它,并显示正在使用交换(即在使用的列中超过0),那么我相当确定添加更多的内存将有所帮助。
虽然如果你有less于1 GB的话,我会不pipe升级内存。
还要考虑安装sysstat软件包(在debian和redhat中以这种方式命名),“sar”命令在找出瓶颈方面非常有用。
发现它 – 毕竟是Drupal cron相关的。 该网站是新的,并有大量的东西通过cron处理(索引大量的节点)。 对于一个(未知的)原因,索引过程就是进入杂草,不断重新启动。 因此,索引器运行起来非常疯狂(因此磁盘活动),但是在日志文件中没有任何问题的证据,因为crontab对cron.php的调用将(最终)完成并显示在日志中。
无论如何,一旦我敲打索引过程并控制了它,cron正在快乐地奔跑,一切似乎都很顺利。 感谢所有的build议!