I'm running Univa Grid Engine 8.6.4. I've been talking to their support, but between a bit of a language barrier and my not fully understanding some aspects of Grid Engine resources, I'm not getting anywhere.
I'm trying to limit memory usage by requiring users to ask for m_mem_free for their jobs. I've got cgroups running on the nodes, I've set the cgroups_params cgroup_path to /sys/fs/cgroups and m_mem_free_soft to true. I've made m_mem_free requestable and consumable. So if I do, for instance, "qsub -l m_mem_free=2G", what I'm hoping is that the node it runs on reserves 2G of resident RAM for the job, and if the job tries to take more than that, any excess is pushed off to swap I've been trying this with a script with only one line: "stress --vm 12 --vm-bytes 1024M -t 60". I'm running "qsub -l m_mem_free=100M" to guarantee that the job takes more than the reserved RAM. However, when I watch the job run on the node, it doesn't appear to respect the limits at all. Top shows that each process takes 1032.1m of virtual memory (exactly what the script asks for), of which any amount up to nearly 1G is resident memory. But I wanted resident memory never to go over 100m. If I try running the same script with m_mem_free=30G, or without any m_mem_free at all, I see exactly the same behavior. Clearly, I haven't accomplished anything. What else do I need to do? Have I missed something in the configuration? Am I not understanding the operation of m_mem_free_soft? Is there some other way I should be doing this?
_______________________________________________ users mailing list users@gridengine.org https://gridengine.org/mailman/listinfo/users