PBS调度问题

  • 问题描述
    • 网上常见的解答
  • 调试过程
    • 任务列表查询
    • 任务调度系统
    • 查看单个任务的详细信息
    • 主要原因分析

问题描述

自上次重启之后,pbs队列系统再次出现同样的问题,任务能够正常提交,并进入队列系统,但是始终都处于排队状态,即使有大量的空闲节点。

网上常见的解答

关于这个问题,网上也有大量的讨论,其中说的比较多的解决方案就是更改时区,但是这个解答好像并不适用于我的情况。
链接中提到的是任务提交失败,修改时区后能正常提交任务,但是提交后的任务仍不能自动调度,只能通过qrun来手动调度。

调试过程

因为这几天输入的命令较多,没有及时记录,所以这里只能根据回忆提供大概的过程。

任务列表查询

[root@master ~]# qstat
Job ID                    Name             User            Time Use S Queue
------------------------- ---------------- --------------- -------- - -----
82327.ILC                  conformation     engzsinger            0 Q hpc001
82460.ILC                  ...mole-n01      engzsinger            0 Q hpc001
82471.ILC                  conformation     engzsinger     03:02:58 R hpc001
82472.ILC                  remote           cosmo1                0 Q hpc001
82473.ILC                  remote           cosmo1                0 Q hpc001
82474.ILC                  remote           cosmo1                0 Q hpc001
82475.ILC                  remote           cosmo1                0 Q hpc001

使用命令qstat进行查询,看到除了一个运行任务,所有任务都在排队,即状态码为Q,而此时服务器上明显有大量空闲节点。查看这几个排队任务的提交脚本,发现提交任务时指定的节点并不跟正在运行的任务冲突,所以认定这个排队状态是调度失败导致的。

任务调度系统

既然认为是任务调度出了问题,那自然就要解决任务调度的问题。torque的工作模式是

  • 管理节点上运行 pbs_server 服务,向队列提交任务
  • 计算节点上运行pbs_mom 服务,监听管理节点的分派,并进行计算
  • 管理节点上运行pbs_sched 服务或 maui.d 服务,进行任务的调度

相应的服务可以通过命令ps -e | grep "service_name"进行查询,这里我们关心的是任务调度服务,torque默认的调度方式是pbs_sched,用户也可以根据自己的需要,采用功能更强大的maui,所以这一步要做的是找到自己运行的任务调度程序,并将其重启。
这一尝试在前几天 已经尝试过,但是效果很短暂,而且道理没搞清楚。

查看单个任务的详细信息

  • torque本身带有的命令tracejob能够对队列中任务的状态进行追踪
[engzsinger@master ION_DCM]$ tracejob 82327
/var/spool/torque/server_priv/accounting/20200822: Permission denied
/var/spool/torque/mom_logs/20200822: No matching job records located
/var/spool/torque/sched_logs/20200822: No such file or directoryJob: 82327.ILC08/22/2020 01:07:27  S    Unauthorized Request, request type: 15, Object: Job, Name: 82327.ILC, request from: root@159.226.63.32
08/22/2020 01:10:42  S    Unauthorized Request, request type: 15, Object: Job, Name: 82327.ILC, request from: root@159.226.63.32
08/22/2020 02:07:57  S    Unauthorized Request, request type: 15, Object: Job, Name: 82327.ILC, request from: root@159.226.63.32
08/22/2020 03:08:27  S    Unauthorized Request, request type: 15, Object: Job, Name: 82327.ILC, request from: root@159.226.63.32
08/22/2020 04:08:57  S    Unauthorized Request, request type: 15, Object: Job, Name: 82327.ILC, request from: root@159.226.63.32
08/22/2020 05:09:27  S    Unauthorized Request, request type: 15, Object: Job, Name: 82327.ILC, request from: root@159.226.63.32
08/22/2020 06:09:45  S    Job Run at request of root@ILC
08/22/2020 06:09:48  S    unable to run job, MOM rejected/timeout
08/22/2020 06:09:48  S    unable to run job, send to MOM '10.0.10.11' failed
08/22/2020 07:09:54  S    Job Run at request of root@ILC
08/22/2020 07:09:57  S    unable to run job, MOM rejected/timeout
08/22/2020 07:09:57  S    unable to run job, send to MOM '10.0.10.11' failed
08/22/2020 08:10:10  S    Job Run at request of root@ILC
08/22/2020 08:10:13  S    unable to run job, MOM rejected/timeout
08/22/2020 08:10:13  S    unable to run job, send to MOM '10.0.10.11' failed

这里能看到系统几次调度该任务的尝试,都以失败告终,而原因是发送到MOM失败,也就是计算节点接受不到任务。

  • 采用maui包中的checkjob命令进行查看,
[engzsinger@master ~]$ checkjob 82460checking job 82460State: Idle  EState: Deferred
Creds:  user:engzsinger  group:users  class:hpc001  qos:DEFAULT
WallTime: 00:00:00 of   INFINITY
SubmitTime: Fri Aug 21 16:54:49(Time Queued  Total: 1:05:17:54  Eligible: 00:00:00)StartDate: -00:58:28  Sat Aug 22 21:14:15
Total Tasks: 24Req[0]  TaskCount: 24  Partition: DEFAULT
Network: [NONE]  Memory >= 0  Disk >= 0  Swap >= 0
Opsys: [NONE]  Arch: [NONE]  Features: [new]IWD: [NONE]  Executable:  [NONE]
Bypass: 0  StartCount: 21
PartitionMask: [ALL]
Flags:       HOSTLIST RESTARTABLE
HostList: [n01:24]
job is deferred.  Reason:  RMFailure  (cannot start job - RM failure, rc: 15025, msg: 'Bad UID for job execution MSG=connection to mom timed out')
Holds:    Defer  (hold reason:  RMFailure)
PE:  24.00  StartPriority:  58
cannot select job 82460 for partition DEFAULT (job hold active)

这里显示的信息主要是任务目前的详细状态,以及对应提交的节点,可能的错误,其中提到了Bad UID for job execution MSG=connection to mom timed out的错误,而通过这个错误进行搜索,也能找到很多解答。

主要原因分析

综合上面的分析,这个问题主要是节点之间通讯导致的问题,管理节点于计算节点的通讯失败。从tracejob的输出结果看,调度系统一直在尝试提交任务,但始终没有被接受执行。
之前一直笃定是调度服务的错误导致的,而且深信计算节点没有问题,结合以上分析后,登录到计算节点看一下,结果提示输入密码,而且输入密码后提示密码错误。这之前也没改过密码啊,怎么突然就不行了。
搭建PBS服务器的过程中,考虑到计算节点安装软件的不便利,各节点创建用户比较麻烦,会同时搭建文件共享服务器和用户信息共享服务器,这样,只需要在管理节点上配置用户,用户可以直接使用相同的登录选项登陆计算节点。现在这个问题可能是计算节点的用户信息共享服务不正常导致的,那下一步主要从这一方面考虑如何解决问题。

PBS任务只排队,不运行相关推荐

  1. xcode 工程没有模拟器_Xcode只允许我运行iOS设备(没有模拟器)

    Xcode只允许我运行iOS设备(没有模拟器) 我刚刚将一个项目克隆到Xcode中,并试图在模拟器中运行它. 但是,我唯一的选择是iOS设备. 这只是这个项目的独特之处,我不知道如何修复它. 其他人遇 ...

  2. 农信银支付清算系统题库_[多选] 农信银支付清算系统中()业务只在工作日运行。...

    [多选] 农信银支付清算系统中()业务只在工作日运行. 更多相关问题 限制性心肌病可见A.左室前壁心肌梗死 B.心瓣膜穿孔 C.心内膜心肌纤维化 D.左心室肥大 钢丝绳有卡子连接时,卡子数目一般不少于 ...

  3. allure测试报告怎么清除历史记录的数据,只展示当前运行结果内容

    文章目录 一.实际allure运行后的报告 二.期望allure运行后的报告 三.解决方法 一.实际allure运行后的报告 展示结果:包括当前运行的内容+历史运行的内容 二.期望allure运行后的 ...

  4. Mac程序坞只显示正在运行的应用图标

    这样看起来就清爽多了 执行终端命令: defaults write com.apple.dock static-only -bool true; killall Dock 即可隐藏其他程序,只显示正在 ...

  5. linux 只允许运行指定程序,我命由我不由天!如何只让程序运行指定时间?

    有时候,我们在使用 linux 系统时,会出现下面这样的情景: 一个命令或程序需要很长时间才能运行完毕,在这过程中,系统可能会假死,我们做任何操作都没用,只好重启系统: 我们仅仅想让命令或程序运行指定 ...

  6. 只让电脑运行某个程序设置

    一.具体操作流程 Win + R打开运行,输入gpedit.msc,然后点击确定 ----------------------------------------------------------- ...

  7. sublime3 Ctrl + B 只build 不运行的解决方案之一

    最近在使用Sublime 3 做开发,一句话评论 不可多得的神器!!! 但是最近发现Ctrl + B build 运行不能用了,不知道出了啥幺蛾子, 查了很多文档也没解决,后来修改Python.sub ...

  8. IDL---批量波段合成(只要点击运行,自动化处理,解放生产力)

    参考博客地址:https://blog.csdn.net/t46414704152abc/article/details/72520575 要进行几百份数据的波段合成,不批量处理真是要做到猴年马月哟. ...

  9. 解决Intel12代酷睿CPU单线程只给小核运行的问题

    文章目录 (一)新问题 (二)无效折腾 (三)偶然发现 (四)继续研究 (一)新问题 真是一波未平一波又起-- 刚搞定了多线程,参考

最新文章

  1. android 时间显示格式,Android setting中修改时间显示格式后,桌面的数字时钟widget小部件显示不更新...
  2. MATLAB Simulink如何实现S-Function builder功能
  3. numpy在折线图上添加取值_见识matplotlib:不常见的一面,折线图
  4. Linux下sed命令替换配置文件中某个变量的值(改变包含字符的一行的值)
  5. PB市净率,PE市盈率
  6. 金融数据分析之财务分析表要填数据怎么办?(学习理财课程后开发的助手工具)
  7. jquery ajax示例_jQuery AJAX JSP Servlet Java示例
  8. 剑指offer——面试题29:数组中出现次数超过一半的数字
  9. mysql 去空格_MySQL基本命令操作
  10. 下载Linux版(rpm格式),WPS Office 2019 Linux 11.1.0.9505版提供Deb、Rpm格式包下载
  11. 什么是运行时应用程序自我保护(RASP)Runtime Application Self-Protection
  12. Web前端-Vue中给input框赋值
  13. Dungeon Architect插件介绍
  14. c语言中小数乘整数,小数乘整数中的算法算理教学
  15. 李宏毅《机器学习》笔记:3.误差分析和梯度下降
  16. 【Bluetooth蓝牙开发】九、BLE协议之GATT
  17. 神经性脚臭案例整理(六)
  18. java计算机毕业设计哈尔滨旅游项目推荐平台演示录像2020MyBatis+系统+LW文档+源码+调试部署
  19. 测试管理工具列表大全
  20. c++ [Error] conflicting declaration的错误

热门文章

  1. Qt开发技术:Qt富文本(一)富文本介绍、文档结构
  2. 求子集PHP,JavaScript求非空子集数目的实现方法
  3. UI设计师为什么要学习字体设计?
  4. 工业42、57、86、110步进电机
  5. 路由器_内网端口映射
  6. php保存微信头像,保存访问者微信头像至服务器
  7. 根据需求设计并实现数据库
  8. matlab计算器设计流程图_matlab计算器的设计.doc
  9. alfred 常用搜索_如何使用Alfred完善macOS的Spotlight搜索
  10. 小程序获取当前日期和时间