新闻详情

新闻详情

首页 / 资讯中心 / 详情

SGE调度系统一个问题

发布时间:2026/10/1 2:57:03来源:尧图网络
SGE调度系统一个问题
这是我的一个程序用qsub方式投递qsub -cwd -V -q bigmem,genelab.q -l h!cn16.local -pe smp 1 -l h_vmem10G -e /path/R01.ExtractUMI_Filt.Normal.26SBB1000204-23.F350071577_L01_11.sh.e -o /path/R01.ExtractUMI_Filt.Normal.26SBB1000204-23.F350071577_L01_11.sh.o /path/R01.ExtractUMI_Filt.Normal.26SBB1000204-23.F350071577_L01_11.sh我有两个队列可以使用一个是bigmem 包含一个胖节点fat01 slot64, mem2T.一个是genelab.q, 包含8个计算节点(cn13,cn14...cn20)每个计算节点 slot32, mem128G.上述命令投递后 如果程序被投到了fat01节点上 铁定报错segmentation fault, 并产生core.12345 这类文件。几个诡异的地方1. 同一个流程的各个程序中只有R01.ExtractUMI_Filt.*.sh这类使用了umi_tools extract的程序会发生这个错误2. 这个错误只在程序被qsub到fat01节点上运行时发生。3. 如果手动ssh fat01, 并sh 程序运行 也不会出错。4. 这个错误只在-l h_vmem10G 发生如果设置为-l h_vmem15G 或者更高的值就不会出错。5. 但同样的-l h_vmem10G设置被qsub到其他节点运行时仍然不会出错。总结原因1. 我的单个 umi_tools extract 程序的内存占用就是超过了 10G 但应该是在 15G 以下。2. fat01 节点 h_vmem 绑定 RLIMIT_AS所以会用 h_vmem 对单个程序的VmAS进行限制 而其他节点 h_vmem 没有绑定 RLIMIT_AS 并不会限制单个程序的VmAS而只是 “算总账”单个umi_tools extract进程虚拟地址空间 VmAS 峰值大于 10G、小于 15G 它的物理内存 RSS真实占用内存不一定超过 10G。这是最容易混淆的点触发 fat01 崩溃的是 VmAS不是 RSS。哪怕物理内存只用 4G只要 VmAS10G就触发 RLIMIT_AScore。✅ fat01h_vmem两件事① SGE 调度记账算总账用来挑选节点投递任务② 任务拉起时设置RLIMIT_AS h_vmem限制单个进程的虚拟地址空间上限一旦 VmAS 超限直接 SIGSEGV core。✅ 其他节点h_vmem只做 SGE 调度记账算总账判断节点配额够不够决定能不能投递任务不会设置 RLIMIT_AS不会限制进程的 VmAS程序的虚拟地址空间可以自由增长不受 h_vmem 约束唯一风险多个任务真实物理 RSS 叠加吃光节点物理内存触发 Linux OOM 杀手SIGKILL一般不生成 core。所以当投递到其他genelab.q节点时虽然单个程序的虚拟地址空间 VmAS也超过了10G 但由于我设置的 -pe smp 6 其他节点的slot数32导致能并行运行的程序数量只含有5个5*1575G远小于128G 总账上面还没有溢出所以没问题。 而且genelab.q节点不限制单个程序的 h_vmem当多个程序的实际运行内存总和而不是 VmAS 总和超过节点物理内存的时候才会触发 Linux OOM 杀手。投递到fat01节点就不一样了 同样是-pe smp 6slot64能并行运行10个, 10*15150G。 总账上面仍然远没有饱和。但由于fat01节点 h_vmem 绑定 RLIMIT_AS, h_vmem 对单个程序的VmAS进行限制。那么算的就不是总账就是每一笔账都要算了。单个程序的VmAS不得超过h_vmem否则就会core。关于内存占用出现这个问题说到底是我对程序的内存占用估计不足。比如这个umi_tools extract。 我当初用memusg 测得的最高内存占用只有100MB, 那我设置成h_vmem 10G已经远超所需了。但实际上不是的 SGE调度系统要看的是虚拟地址空间 VmAS而非实际内存占用RSS那么memusg就不那么好使了。得靠“/proc/$pid/status”文件中的信息来获取VmAS。写个监控VmAS的脚本名为monitor.pl#!/usr/bin/perl use strict; use warnings; my cmd ARGV; die Usage: $0 command args...\n unless cmd; # 启动目标程序 my $pid fork(); if ($pid 0) {#子进程 exec(cmd) or die exec failed: $!; } my $max_vmpeak 0; while (1) { # last unless kill 0, $pid; # 进程退出就跳出 last unless ( kill(0, $pid) ); # 进程退出就跳出 if (open my $fh, , /proc/$pid/status) { while ($fh) { if (/^VmPeak:\s(\d)/) { my $val $1; $max_vmpeak $val if $val $max_vmpeak; last; } } close $fh; } select undef, undef, undef, 0.05; # 50ms 休眠 } waitpid($pid,0); my $exitcode $? 8; printf VmPeak(KB): %d \n, $max_vmpeak; printf VmPeak(GB): %.2f \n, $max_vmpeak / 1024; print exit_code: $exitcode\n; pod 可以看出while循环内部在高频反复读取/proc/$pid/status的内容。 既然/proc/$pid/status中的VmPeak只增不减为什么不等子进程结束后只读取一次呢 因为子进程结束后 /proc/$pid/status会很快就被删除掉。 到那时已经读取不到了。所以必须在程序(就是cmd)运行的时候高频反复读取。 周期是50毫秒读取一次这里用select比sleep好用。 因为有些集群不支持sleep(0.05)这类的 cut运行方式./monitor.pl umi_tools extract XXX XXX关于fork()my $pid fork();$pid0, 子进程$pid0, 父进程 $pid的值就是子进程的编号对比wait和waitpid详见对比wait和waitpid
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

杭州写字楼办公室装修公司专业靠谱推荐:深度选型策略与落地指南 2026/10/1 21:28:32

杭州写字楼办公室装修公司专业靠谱推荐:深度选型策略与落地指南

选择杭州写字楼办公室装修公司,核心不是比谁报价低,而是看合规资质、消防报审能力、交付体系、环保材料与售后条款。优先选择有写字楼案例、能提供设计施工一体化服务、报价清单透明、工期节点清晰的本地服务商,比单纯压价更稳妥。杭州写字楼…

阅读更多 →
SpringBoot+Vue车间管理系统:业务设计、数据库与部署全解析 2026/10/1 21:28:25

SpringBoot+Vue车间管理系统:业务设计、数据库与部署全解析

这么多年接手的工厂信息化项目里,车间生产管理这块是最容易"看着简单、做起来绕"的。业务方通常会先丢过来一句"就是管一下工单、设备、物料嘛",等真正开始梳理流程才发现:一个工单从下达到完工要经过排产、领料、报工、…

阅读更多 →
钛镁GEO与深演智能GEO服务商对比:两条技术路径、能力侧重 2026/10/1 21:28:25

钛镁GEO与深演智能GEO服务商对比:两条技术路径、能力侧重

核心结论:钛镁GEO与深演智能代表GEO服务的两条技术路径——前者为“GEO原生全栈自研”,后者为“决策AI体系嵌入”。两者没有绝对优劣,选型应基于企业GEO战略位置、行业经验与技术协同需求。 核心速览GEO的本质:GEO(Gen…

阅读更多 →
苏州正规的GEO优化服务商精选推荐 2026/10/1 21:28:17

苏州正规的GEO优化服务商精选推荐

AI搜索时代,选对服务商就是选对增长路径当采购方的第一问从搜索引擎转移到AI对话框,企业的品牌能否被豆包、DeepSeek、元宝、千问、文心一言、Kimi、ChatGPT、Gemini等主流AI平台主动推荐,已经直接决定企业能否进入客户候选名单。GEO&#xf…

阅读更多 →
哈尔滨营业员做周末短工,净到手怎么算才不亏本? 2026/10/1 21:28:11

哈尔滨营业员做周末短工,净到手怎么算才不亏本?

哈尔滨的零售门店到了周末和节假日,临时缺人手是常事。很多营业员想接周末短工补收入,却没算清扣完交通和饭钱后到底剩多少。先把账摆明白,再决定接不接,别看着日结数字挺美,干完一算反倒贴了进去。哈尔滨冬天长&#…

阅读更多 →
AOSP14_物流PDA扫码_03_系统侧监听触发并仲裁及去抖与连按过滤 2026/10/1 21:28:11

AOSP14_物流PDA扫码_03_系统侧监听触发并仲裁及去抖与连按过滤

AOSP 14 源码实战:物流 PDA 扫码输入统一与 HAL 模拟(三)—— 系统侧监听触发并仲裁及去抖 / 连按过滤系列第三篇。上一篇我们已经让系统"看见"了这个键:PhoneWindowManager 里能打到 SCAN_TRIGGER received 日志。 但那…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉