首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >进程在运行了一段时间之后会变慢。

进程在运行了一段时间之后会变慢。
EN

Server Fault用户
提问于 2011-01-12 17:20:51
回答 3查看 3.2K关注 0票数 1

我在一台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等待“淹没”。如果我错了,纠正我:)

EN

回答 3

Server Fault用户

发布于 2011-01-12 18:04:34

沙尔(1)将提供您需要在这里分析的数据。您可以查看sar -A以查看所有收集的sar统计数据,然后向下钻。例如,sar -b将为您提供I/O统计数据,以查看您是否陷入磁盘活动的泥潭。

sar的一个好特性是它记录在后台,这样您就可以使用它来查看历史数据,而不仅仅是当前的统计数据。

票数 1
EN

Server Fault用户

发布于 2011-01-12 17:28:41

嗯,您可以检查它是否是"去冰",但听起来更像是由于内存或IO问题而使进程陷入泥潭。你能张贴内存使用情况吗?

票数 0
EN

Server Fault用户

发布于 2011-01-12 17:40:03

"D“状态表示命令正在等待IO。这和僵尸的过程不太一样。

检查您的进程使用了多少ram --如果它使用太多并且正在交换,这很可能会表现为您所看到的症状。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/221663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档