科研星球

生物信息任务运行状态详解

在做生物信息分析的时候,运行一个任务,需要及时监控任务运行状态,例如在运行,暂停,停止还是挂起了。这样才能很好的来调配任务。这次内容我们就来详细介绍一下常见的任务状态R、S、D、T、Z等都是什么意思。


监控任务状态

通过命令在命令行运行top命令可以动态的监控任务运行的状态,

  • 第1行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)。

  • 第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。

  • 第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。

  • 第4行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。

  • 第5行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量。

wxsync-2020-04-1e486aa1196747fc9344be45e94d8b06.png

下面详细列出每个任务的具体状态,其中“S”列为具体状态,用RSTDZ等字符表示。可以通过这里监控自己任务的运行状态,如果是“R”那么就比较好,“S”正常,如果是“T、D、Z”就要小心了。

状态详解

1、R (TASK_RUNNING)

R表示任务运行中,这是最好的状态,表明自己的分析工作开始工作中了,CPU开始进行数据分析的运算。不过要注意的是,其实R也表示任务在运行队列中等待,这就涉及到CPU任务调度机制,大家通常理解为在运行就可以了。

2、S (TASK_INTERRUPTIBLE)

可中断睡眠状态,进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该   状态。正常情况下,进程中的绝大多数进程都处于休眠状态,这是因为CPU无法同时处理上百个任务,需要轮流交替来执行任务,如果一个任务处于S状态,属于正常,不用担心。有些任务通常会在R与S之间切换。有时候任务会长时间处于S状态,这是因为当前机器无法提供足够的资源了,只能一直等待,知道空闲资源满足需求。

3、D (TASK_UNINTERRUPTIBLE)

S是可中断的睡眠,而D是不可中断的睡眠状态,简单理解就是S是睡眠,而D是长眠,任务撕掉了,“生前何须久睡,死后自会长眠”。处于D状态之后,进程不响应系统异步信号,即便用kill命令也不能将其中断。

4、T (TASK_STOPPED or TASK_TRACED)

暂停状态或跟踪状态,进程收到停止信号后停止运行。T一般也叫做挂起状态。相当于给一个任务按下了暂停键,等待跟踪它的进程对它进行操作。需要在接收到一个运行运行指令后继续运行。

5、Z (TASK_DEAD – EXIT_ZOMBIE)

退出状态,进程成为僵尸进程。这个名称非常形象,僵死状态也称为僵尸。表示死的不彻底。僵尸状态是如何产生的呢,比如一个脚本中任务,会在开始很多子任务,在这些子任务还在运行的时候,后台将总任务,也称父进程杀死,导致这些子程序成了“孤魂野鬼”就变成了僵尸状态。


没有账号?