【问题标题】:Only run condor jobs if less than RAM threshold is used仅在使用小于 RAM 阈值时才运行 condor 作业
【发布时间】:2018-08-17 00:52:30
【问题描述】:

我有一个具有 132 个插槽的执行主机,并且 condor 会很高兴地在那里运行 132 个作业。但是根据工作,这 132 个可以使用所有 RAM 并导致交换并最终丢弃。如何设置配置 选项显示“如果使用的 RAM 超过 nnGB,则不运行作业”?

我已阅读https://htcondor-wiki.cs.wisc.edu/index.cgi/wiki?p=HowToLimitMemoryUsage 但它没有说明如何做到这一点。

当我说 RAM used 时,我指的是我在 used 中看到的数字 免费栏目:

$ free -mh
               total        used        free      shared buff/cache   available
Mem:           125G         44G         18G         19M         63G         79G

【问题讨论】:

  • 我没有可以管理的集群来给你一个实际的答案,但我认为你想研究自定义START Policy criteria。以 MB 为单位的物理 RAM 的宏是 $(DETECTED_MEMORY)
  • 但这会随着 RAM 的消耗而动态变化以提供可用数量,还是它是总 RAM 的静态值?
  • 我想您需要使用本地评估的 START 策略表达式,将机器的当前状态(来自其 ClassAds)与最大内存宏混合,即测试当前可用 RAM 是否为 x%如果是这样,总计并将 START 评估为False。如果我能够测试这些陈述,我会写一个答案而不是指向你的文档。 research.cs.wisc.edu/htcondor/manual/v8.6/…
  • 2 个问题:1) ClassAd 中的哪些内容显示了当前使用或可用的 RAM 量?当我在作业运行时查看 ClassAd 时,我看不到任何与内存变化相关的值 - 它们似乎总是显示总 RAM。 2) 假设 ClassAd 中有这样一个值,我该如何在策略表达式中引用它?

标签: condor


【解决方案1】:

HTCondor 进行匹配时,会考虑MEMORY 的值。这个值是可调的。

例如,您可以在工作节点上设置以下内容以保留 2GB:

MEMORY = $(DETECTED_MEMORY) - 2048

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    相关资源
    最近更新 更多