我在集群环境中的 openSUSE 12.1 上使用扭矩 4.0.1。当我 qsub 一项工作(简单为“echo hello”)时,它保持在“Q”状态,并且永远不会被安排。我可以强制使用 qrun 运行作业,并且它在第一个节点上执行而没有错误。
过去几天我试图找到解决方案,但失败了。我看了手册,日志,甚至源代码,但仍然无法定位问题。当然,我用谷歌搜索了很多,尝试了各种解决方案,但没有一个奏效。
以下是一些可能有用的信息:
05/13/2012 18:55:08;0002; pbs_sched;Svr;Log;Log opened
05/13/2012 18:55:08;0002; pbs_sched;Svr;TokenAct;Account file /var/spool/torque/sched_priv/accounting/20120513 opened
05/13/2012 18:55:08;0002; pbs_sched;Svr;main;pbs_sched startup pid 32604
Run Code Online (Sandbox Code Playgroud)
05/13/2012 19:33:08;0002;PBS_Server;Svr;PBS_Server;Torque Server Version = 4.0.1, loglevel = 0
05/13/2012 19:33:56;0100;PBS_Server;Job;16.head;enqueuing into batch, state 1 hop 1
05/13/2012 19:33:56;0008;PBS_Server;Job;16.head;Job Queued at request of pubuser@head, owner = pubuser@head, job name = STDIN, queue = batch
Run Code Online (Sandbox Code Playgroud)
Job Id: 16.head
Job_Name = STDIN
Job_Owner = pubuser@head
job_state …
Run Code Online (Sandbox Code Playgroud) 我与 HAL 共享一个服务器。服务器有 32 GB 内存。
我很少使用超过 1 GB 的内存,当我使用时,每次使用几分钟,而且我不介意将此类作业发送到后面。
HAL 读/写大文件(例如使用 gunzip)。这可能会间歇性地占用多达 100% 的内存CPU 数小时。这通常是在一夜之间完成的,但在运行时,即使是简单的命令,例如cd
take 30s,打开emacs
也可能需要几分钟。
我希望能够保留 1 GB 供使用 << 1GB 的进程使用(如文本编辑器)。我也想远离 HAL,并且没有理由认为这应该是一个问题。
HAL 说排队系统(如 PBS)不能用于将读/写的优先级设置为低,例如,在大型作业运行时始终保留 1 GB 内存可用。用他的话来说:
用于 gunzip 的脚本会阻塞所有处理器,因为数据很大......排队无法解决这个问题......在从(该服务器)到(该服务器)的文件传输期间,膨胀步骤会进行大量读取/写
为什么排队不能解决这个问题?什么可以?
每当我提交作业数组时,我都会获得以下形式的一个作业 ID:463880-1.hostname
463880 是作业 ID,1 是数组 ID,每个“数组位置”对应一个作业。
今天我使用的是另一台机器,它看起来像是不同的 PBS 版本,因为作业数组(大小为 10)恢复到以下单个作业:3310[].hostname
。
我想知道列出两个版本,以检查是否需要更改脚本中的某些内容。