我在Sun Grid Engine(现在称为Oracle Grid Engine)群集上运行工作。要查看我的作业是否由于节点过载而变慢,我尝试检查节点的状态:
$ qstat -l hostname=hnode03 -f
queuename qtype resv/used/tot. load_avg arch states
---------------------------------------------------------------------------------
all.q@hnode03.rnd.mycorp.com BP 0/0/0 103.41 lx24-amd64
---------------------------------------------------------------------------------
highmem.q@hnode03.rnd.mycorp BP 0/37/40 103.41 lx24-amd64
977530 0.76963 runJob1 userme r 09/13/2013 17:53:26 2
---------------------------------------------------------------------------------
threaded.q@hnode03.rnd.mycor BP 0/24/32 103.41 lx24-amd64
---------------------------------------------------------------------------------
workflow.q@hnode03.rnd.mycor B 0/0/0 103.41 lx24-amd64
和
$ qhost -h hnode03
HOSTNAME ARCH NCPU LOAD MEMTOT MEMUSE SWAPTO SWAPUS
-------------------------------------------------------------------------------
global - - - - - - -
hnode03 lx24-amd64 64 103.4 504.8G 122.9G 16.0G 58.0M
现在,load_avg
是103.41,而NCPU
只有64.这应该发生吗?某些作业是使用CPU而不是分配它们的插槽吗?
更新:在回复查询时,配置会上传到http://pastebin.com/hLnJBetS。
答案 0 :(得分:2)
是的,它可以。
插槽不是核心的同义词(NCPU)。必须将插槽视为“可以在节点上并行调度多少个作业。”
如果您只想一次运行一个作业,请将计算机的插槽数设置为一个。
对于加载因子,即使您的作业只使用一个插槽,如果您有太多线程或子进程,那么将使用所有核心并且加载因子肯定会超过1。