[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Condor-users] Confused about multiple slots, VM_MAX_NUMBER, and VM_MEMORY !?!
- Date: Tue, 11 Aug 2009 13:46:24 -0700
- From: Jaeyoung Yoon <jaeyoungyoon@xxxxxxxxx>
- Subject: Re: [Condor-users] Confused about multiple slots, VM_MAX_NUMBER, and VM_MEMORY !?!
Adding some comments to Matt's,
As matt said, VM_MAX_NUMBER and VM_MEMORY server as a second level of
checks for VM jobs on the whole PC.
Originally VM_MAX_NUMBER was added to limit the number of VM jobs on
the whole machine. And VM_MEMORY was added to limit the amount of
memory for VM jobs on the whole machine.
Let me give one example,
With your machine(2CPUS and 4GB RAM), by default Condor creates two
slots (slot1 and slot2) where each slot has 2GB.
So you can run two Condor jobs(Vanilla, Standard, Java Universe etc.)
concurrently. But when you set VM_MAX_NUMBER to 1, even if you have
two slots, you can at most ONE VM job on the whole machine. That is,
at most one slot can be assigned to VM job. Surely, it is possible
that one slot for VM, the other slot for Vanilla.
If you leave VM_MAX_NUMBER undefined or set to 0, the maximum number
of running VM jobs is same to the number of Slots. In your case, the
number is 2. But you can see "VM_MAX_NUMBER = 10000" in the machine's
ClassAd. I know the number looks weird. But anyway "VM_MAX_NUMBER =
10000" in classAd means that the maximum number of running VM jobs on
the machine is same to the number of slots.
VM_MEMORY is the total memory which can be assigned to VM jobs on the
whole machine. It is not related to memory assigned to each slot. In
submit file for VM jobs, you need to specify how much memory is
necessary for the submitting VM job. The memory amount will be checked
with "VM_MEMORY "in machine classAd.
Here is the example in your machine where slot1 and slot2 has each 1GB.
Supposed you set "VM_MAX_NUMBER = 1" and "VM_MEMORY = 1600", you can
run at most one VM job which requires less and equal than 1600MB.
Notice you can submit 1.6GB vm job even if each slot has 1GB.
Supposed you set "VM_MAX_NUMBER = 0" and "VM_MEMORY = 1600", when you
submit one VM job requiring 1.3GB memory, you can run the VM. But
after the VM job is assigned to one slot, VM_MEMORY will be decreased
to "300". So if you try to submit another VM job requiring 500MB
memory, it will not be assigned to machine any more because VM_MEMORY
is 300 at that time.
On Tue, Aug 11, 2009 at 12:09 PM, Matthew Farrellee<matt@xxxxxxxxxx> wrote:
> Rob wrote:
>> I'd like to understand the concept of multi core PCs (which represent
>> themselves as independent slots in the Condor pool), in relation to the
>> VMware server for the VM Universe.
>> For example, a dual core PC (2 CPUs) with 4 GB RAM appears as
>> slot1 and slot2 in the condor_status list of the master and each slot
>> gets 2 GB of the total physical RAM.
>> What are the effects of VM_MAX_NUMBER and VM_MEMORY?
>> Are the values defined with respect to the whole PC, or per slot?
>> Should I allow two VMs or just one on a dual core PC?
>> I suppose this choice then also effects how much RAM I can assign
>> to a VM.....?!?
> The variables apply across the entire machine and really serve as a second level of checks that VM jobs must pass.
> You should be safe leaving VM_MAX_NUMBER undefined (or set to 0) and setting VM_MEMORY to however much memory is given to a slot.
> I'm actually consider removing these in favor of normal startd policy. For instance, if you have 4 cores and want to run only 2 VMs then you only advertise 2 slots. If you want no VMs to be over 1GB then you only advertise 1GB of memory on the slots. If you want a mix of VMs and jobs to run and want to constrain the VMs more then advertise 2 non-VM slots and 2 VM slots, where normal jobs can run on any of the 4.
> Have any thoughts on this?
> Condor-users mailing list
> To unsubscribe, send a message to condor-users-request@xxxxxxxxxxx with a
> subject: Unsubscribe
> You can also unsubscribe by visiting
> The archives can be found at: