- 我相信每一个安装Rocks cluster的新手都有着一肚子的辛酸,踩过无数的坑。但网上有关Rocks cluster的中文参考资料的确并不丰富。我愿意将我所碰到的问题分享给大家,希望大家可以喜欢我的唠叨。
- 与Rocks相关的安装和运维内容,我将不断更新出来,如有问题,可以给我留言
1. SGE的安装
- Rocks cluster 7中SGE应该是伴随集群系统直接安装好的。
- 其中各个节点的IP和名字需要在/etc/hosts中设置好,但请注意,不要在/etc/hosts里直接进行修改。
[XXX@XXXX ]$ cat /etc/hosts
# Added by rocks report host #
# DO NOT MODIFY #
# Add any modifications to #
# /etc/hosts.local file #
- 修改应该在/etc/hosts.local这个文件中进行。
1. 任务的环境变量
- 所投递任务的环境变量并不是投递用户的环境变量,如果需要使用用户的环境变量,需要在所投递的shell中加入上两行,如下:
#!/bin/bash
#$ -S /bin/bash
- 或者在任务里直接用export指定相关的环境变量。(推荐使用,排除用户环境变量的差异)
2. qsub加入-p参数任务竟然无法运行
- 经常使用SGE任务管理系统的同学可能都知道-p 参数可以控制投递任务所申请的线程数。
- 然而 qsub -cwd -l vf=20G -l p=5 -q all.q test.sh 永远qw,即使资源十分丰富。
[XXX@XXXX shell]$ qconf -sc
#name shortcut type relop requestable consumable default urgency
#--------------------------------------------------------------------------------------
arch a STRING == YES NO NONE 0
calendar c STRING == YES NO NONE 0
cpu cpu DOUBLE >= YES NO 0 0
display_win_gui dwg BOOL == YES NO 0 0
h_core h_core MEMORY <= YES NO 0 0
h_cpu h_cpu TIME <= YES NO 0:0:0 0
h_data h_data MEMORY <= YES NO 0 0
h_fsize h_fsize MEMORY <= YES NO 0 0
h_rss h_rss MEMORY <= YES NO 0 0
h_rt h_rt TIME <= YES NO 0:0:0 0
h_stack h_stack MEMORY <= YES NO 0 0
h_vmem h_vmem MEMORY <= YES NO 0 0
hostname h HOST == YES NO NONE 0
load_avg la DOUBLE >= NO NO 0 0
load_long ll DOUBLE >= NO NO 0 0
load_medium lm DOUBLE >= NO NO 0 0
load_short ls DOUBLE >= NO NO 0 0
m_core core INT <= YES NO 0 0
m_socket socket INT <= YES NO 0 0
m_thread thread INT <= YES NO 0 0
m_topology topo STRING == YES NO NONE 0
m_topology_inuse utopo STRING == YES NO NONE 0
mem_free mf MEMORY <= YES NO 0 0
mem_total mt MEMORY <= YES NO 0 0
mem_used mu MEMORY >= YES NO 0 0
min_cpu_interval mci TIME <= NO NO 0:0:0 0
np_load_avg nla DOUBLE >= NO NO 0 0
np_load_long nll DOUBLE >= NO NO 0 0
np_load_medium nlm DOUBLE >= NO NO 0 0
np_load_short nls DOUBLE >= NO NO 0 0
#num_proc p INT <= YES NO 0 0
qname q STRING == YES NO NONE 0
rerun re BOOL == NO NO 0 0
s_core s_core MEMORY <= YES NO 0 0
s_cpu s_cpu TIME <= YES NO 0:0:0 0
s_data s_data MEMORY <= YES NO 0 0
s_fsize s_fsize MEMORY <= YES NO 0 0
s_rss s_rss MEMORY <= YES NO 0 0
s_rt s_rt TIME <= YES NO 0:0:0 0
s_stack s_stack MEMORY <= YES NO 0 0
s_vmem s_vmem MEMORY <= YES NO 0 0
seq_no seq INT == NO NO 0 0
slots s INT <= YES YES 1 1000
swap_free sf MEMORY <= YES NO 0 0
swap_rate sr MEMORY >= YES NO 0 0
swap_rsvd srsv MEMORY >= YES NO 0 0
swap_total st MEMORY <= YES NO 0 0
swap_used su MEMORY >= YES NO 0 0
tmpdir tmp STRING == NO NO NONE 0
virtual_free vf MEMORY <= YES NO 0 0
virtual_total vt MEMORY <= YES NO 0 0
virtual_used vu MEMORY >= YES NO 0 0
- 我们发现num_proc这行原本显示的是== (为方便显示我们加了#,这行没有#哈)
- 要将num_proc这行由==改为<= 否则只有任务需求和机器总的总线程数目相等,任务才会被投递上去。
那么我们需要对它进行修改,修改命令为
qconf -mc
- 如果你的任务长期处于qw的状态,那么建议你用如下命令来查明原因:
qalter -w v jobid
- 可以查看任务为什么qw。
网友评论