我在一台ubuntu机器上运行了几个cron任务。每个人都会做一些很重的事情。cron作业正在解析文件,文件越大,解析它所需的时间就越长。奇怪的是,如果文件太大(比如30 of ),脚本就会挂起。它开始非常热情地处理它们,但是过了一段时间(大约5-10分钟),进程的cpu使用率下降了很多,进入了“僵尸”状态。如果在此之前,htop中的进程使用了70%-80%的CPU,那么在这个下降发生之后,它会减慢到5-10%左右。平均负荷也下降了。在htop中,进程的状态有时会更改为D,后者代表僵尸。今天,我注意到mysql进程在执行大量查询时的相同行为(执行一个查询需要大约4个小时)。cron作业大多是php,在处理过程中,大多数CPU占用php进程,而不是mysql。因此,我认为问题不在于特定的语言/程序,而在于进程的“管理”方式。
我所见过的唯一类似行为是在我的Amazon微实例上,在对CPU进行了一些积极的使用之后,CPU配额正在生效,而且一切都在急剧放缓。
这是一台运行ubuntu的专用机器。可能是什么原因?
编辑:添加一些细节
内存是可以的,这不是交换IMHO的问题。
iostat说这是关于IO活动的:在我看来,http://img13.imageshack.us/i/captureehm.png/是可以的,因为一些IO被期望发生,看起来处理器没有被IO等待“淹没”。如果我错了,纠正我:)
发布于 2011-01-12 18:04:34
沙尔(1)将提供您需要在这里分析的数据。您可以查看sar -A以查看所有收集的sar统计数据,然后向下钻。例如,sar -b将为您提供I/O统计数据,以查看您是否陷入磁盘活动的泥潭。
sar的一个好特性是它记录在后台,这样您就可以使用它来查看历史数据,而不仅仅是当前的统计数据。
发布于 2011-01-12 17:28:41
嗯,您可以检查它是否是"去冰",但听起来更像是由于内存或IO问题而使进程陷入泥潭。你能张贴内存使用情况吗?
发布于 2011-01-12 17:40:03
"D“状态表示命令正在等待IO。这和僵尸的过程不太一样。
检查您的进程使用了多少ram --如果它使用太多并且正在交换,这很可能会表现为您所看到的症状。
https://serverfault.com/questions/221663
复制相似问题