Linux基础入门 | 服务器集群使用指南

时间:2022-07-23
本文章向大家介绍Linux基础入门 | 服务器集群使用指南,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

上一次,小编把常用的Linux命令做了分享。但是,我们进行生物信息学分析时,往往需要在高性能服务器集群上投递任务。这就需要我们掌握基本的服务器集群操作方法。

使用高性能服务器集群时,需要通过ssh远程登录,在Windows下有很多软件可以通过ssh连接Linux主机,如Xshell、Putty等等……在这里小编推荐使用Xshell,大家可以使用学校邮箱在官网申请使用教育版。

申请地址:

https://www.netsarang.com/zh/free-for-home-school/

填好信息以后,邮箱会收到一封邮件,点击链接下载Xshell和Xftp,安装软件。

安装好以后打开软件,点击“新建”,创建一个新的会话。

在“主机”处输入服务器的IP地址。

点击“用户身份验证”,输入用户名和密码,就可以登录服务器啦!

需要注意的是,我们是远程登录服务器,如果你的连接断开的话,在Xshell里执行的命令是会终止的!!!

为了避免我们执行的命令由于连接断开而终止,我们在执行命令时可以使用“ nohup ”命令。

## 输入命令
nohup command &
## 退出终端
exit

这样,我们就把任务提交到了后台,重新登录服务器以后,就会看到提交命令的目录下多了一个"nohup.out"文件,运行日志都记录在里面。点击“Xftp”的图标,就可以把输出文件下载到我们的电脑里。

我们使用的服务器集群大都由登录节点和计算节点组成。登录节点用来执行简单的Linux命令,不能执行资源消耗大的任务,这时我们就需要将任务由登录节点投递至计算节点。在这里,小编教大家如何使用集群管理系统SGE(Sun Grid Engine)投递任务。

(注意:不同单位的服务器集群管理系统可能不同!系统不同命令也不同!具体可咨询服务器管理员!)

我们首先使用SGE在登录节点投递任务,SGE接收到任务后会将任务储存至一个指定区域,随后将任务投递至一个计算节点上运行,运行结束后将结果返回。这样我们在登录节点投递任务后,就可以关掉电脑做其他事,SGE会把我们的任务安排在计算节点里执行。

## 投递任务
qsub -cwd -l vf=*G,p=n,h=node -q queue *.sh

-cwd:使用当前工作目录,SGE的运行日志会输出在当前目录。

-l:申请所需的资源。vf=*G设置任务预计使用的内存大小(一般设置的值要稍微大一些,否则容易让计算节点挂掉),p=n设置所需的CPU数,h=node指定任务投递的节点名称。日常使用时,并不是每次都要设置这三个参数,大家可以根据自己的需要自行删减。

-q:指定任务投递的队列名称。

*.sh:需要投递的任务,建议在脚本前加上完整路径。

输入这条命令后,我们的任务就投递到服务器上啦!

任务投递成功后,我们可以使用" qstat "查看任务的状态。

## 查看任务状态
qstat
## 查看指定任务状态
qstat -j job-ID
## 删除指定任务
qdel job-ID
## 查看计算节点信息
qhost

job-ID:任务号

state:任务状态。一般会有以下几种情况,"qw"代表任务在等待执行,"r"代表任务正在执行,"s"代表任务暂时挂起,"dr"代表任务所在的计算节点挂了,需要联系管理员重启节点。任务还有其他状态,大家遇到时可以查询一下。

queue:任务所在的队列及计算节点。

最后再教给大家一个命令" qhost ",使用该命令可以查看计算节点的资源状况,方便我们选择任务投递的队列和节点。

SGE还有非常多的指令,具体需要时,大家可以在网上查询。

学会了这些,再也不用担心服务器管理员封你号啦!

参考资料:

http://www.it.uu.se/datordrift/maskinpark/albireo/gridengine.html#manuals

https://www.jianshu.com/p/b7b540a3c015