小编lon*_*r21的帖子

在 SGE 上跟踪作业的内存使用情况

我正在寻找有关如何精确计算我的工作在我的集群上使用了多少 RAM 的一些指导。我的工作不是多线程的,而是在单个 CPU 上运行。

当我运行我的工作并运行“top”时,我可以看到它使用了这么多内存......

VIRT: 45.6g
RES: 38g
SHR: 9600
Run Code Online (Sandbox Code Playgroud)

这(纠正我错误的地方)对我来说意味着我正在使用 38 Gigs 的真实 RAM,以及 7.6 Gigs 的可能已被转移到交换的东西。大约 40 Gig 的数字是我正在测试的工具的作者所说的我的工作应该使用的数字。

当我从 SGE(使用 qstat 或 qacct)获得这些数字时,困惑就来了。 qacct -j 7270916 在这里我看到

mem 2768.453
maxvmem 4.078G
Run Code Online (Sandbox Code Playgroud)

然而,这些都没有接近我知道我正在使用的 45.6 gig 的 RAM(尽管 maxvmem 听起来确实应该代表 45.6 gig)。

在作业运行时,我尝试使用此命令 qstat -j 7270916 ,其中看到了以下行:

usage 1: cpu=00:01:37, mem=168.12988 GBs, io=38.64676, vmem=1.665G, maxvmem=4.078G
Run Code Online (Sandbox Code Playgroud)

我想 mem 是运行中使用/释放/使用/释放的所有 RAM 的总和(它刚刚完成),但 maxvmem 仍然很低(远低于我预期的 45.6 gigs)。

所以我对 qcct 和 qstat 的使用都生成了与预期数字不一致的数字(我在顶部看到)。

有没有人有关于如何在运行完成后使用 SGE 命令获取有意义的 RAM 使用量的建议?

编辑:我使用的是 SGE 6.2u5

memory gridengine

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

gridengine ×1

memory ×1