Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

194 lines (157 sloc) 7.377 kb
################################################################################
#
# This file is used for configuring asynchronous requests (Spot Instances and
# backfill requests) for this site.
#
################################################################################
# NOTE: There is extra documentation on these features online, see:
# http://www.nimbusproject.org/docs/current/admin/reference.html#backfill-and-spot-instances
# SI ENABLED
#
# Indicates whether the spot instances feature is enabled (true) or disabled
# (false) for this site. This is for remote requests -- if backfill is enabled
# below, the superuser backfill reqs will be honored but any remote attempt to
# add asynchronous requests will not be honored. If you switch this from 'true'
# to 'false', it will only prevent new requests from being added.
si.enabled=false
# BACKFILL ENABLED
#
# Indicates whether the backfill feature is enabled (true) or disabled (false)
# for this site. If you switch this from 'true' to 'false', it will cause all
# currently running backfill nodes to be destroyed.
backfill.enabled=false
################################################################################
#
# Backfill settings
#
################################################################################
# The intent of backfill is to provide a Nimbus cloud with the ability to deploy
# a VM on idle nodes. Such a VM could be configured with a service like Condor,
# allowing the VM to contribute cycles to some other purpose instead of wasting
# cycles on idle cloud nodes. When a user request is received the VM is terminated
# immediately and the user VM is deployed.
#
# The VM used by backfill (and the services inside of it) must be able to handle
# a hard shutdown. A hard shutdown is used to minimize the turnaround time for
# responding to user requests.
#
# A way to think about backfill nodes is that they are spot instances with the
# very lowest priority (lower than the minimum spot bid) and only registered by
# the Nimbus administrator.
# MAX INSTANCES
#
# Max instances is the maximum number of VM instances that backfill will deploy
# if it is enabled. If there is not enough space on the cloud for the maximum #
# of instances it will deploy as many as it can. For example, if max.instances
# is set to 12 on a 16 node cloud but there are 10 active user VMs then backfill
# will still launch 6 backfill nodes. If the spot instances settings have space
# reserved for regular requests (see the 'minreservedmem' and 'maxutilization'
# confs below), these backfill requests will be subject to that as well, so the
# site will not fill up completely.
#
# If max instances is set to 0 then backfill will use all idle VMMs.
#
# The default is 0.
max.instances=0
# DISK IMAGE
#
# The disk image is the image to use in the repository of the user configured
# below (repo.user). To set the instance type, see below (async.instancetype).
disk.image=backfill.img
# USER
#
# Authorization will be bypassed for this user but it needs to exist in order
# to have a repository account for propagating "disk.image". Add this user
# with the nimbus-new-user "--dn" option (set an explicit DN) or refer to a
# pre-existing (administrator) one.
repo.user=BACKFILL-SUPERUSER
################################################################################
#
# Spot Instances settings
#
################################################################################
# INSTANCE TYPE
#
# Defines the instance type that will become available as spot instances or backfill.
# Supported instance types are: small, large and xlarge.
#
# Currently, Nimbus supports only one type of spot instance or backfill VM per
# service. The amount of memory for each instance type is defined in the
# elastic.conf file.
async.instancetype=small
# PRICING MODEL
#
# A pricing model is invoked every time the Spot Instances environment changes.
# This can happen in many situations: when a request arrives, is canceled or
# terminated, when the quantity of resources available for Spot Instances
# increases or decreases, etc.
#
# Given the actual requests, the maximum quantity of VMs for Spot Instances and
# the current spot price, a pricing model defines the next spot price based on
# this variables. Usually a spot price change causes requests to be allocated,
# if their bid is above the spot price, or pre-empted, if their bid is below
# the current spot price.
#
# This property defines which implementation of the
# org.globus.workspace.async.spotinstances.PricingModel Java interface should be
# used by the Spot Instances module to set the spot price. This class will be
# constructed by reflection, so it must be in the classpath of the Nimbus service.
#
# Currently there are two default implementations of the module, explained
# as follows:
#
# ** org.globus.workspace.async.pricingmodel.MaximizeUtilizationPricingModel **
#
# This pricing model aims to satisfy the maximum number of requests, giving
# priority to higher bid requests when there aren't available VMs to fulfill
# all requests. Suitable for scientific clouds.
#
# ** org.globus.workspace.async.pricingmodel.MaximizeProfitPricingModel **
#
# This pricing model aims to maximize the revenue of the cloud provider, without
# necessarily increasing cloud utilization. Suitable for commercial clouds.
si.pricingmodel=org.globus.workspace.async.pricingmodel.MaximizeUtilizationPricingModel
# MINIMUM PRICE
#
# Defines the minimum price (in allocation units) per minute that a Spot Instance
# can cost
si.minprice=0.1
################################################################################
#
# Memory Management Policies
#
################################################################################
# RESERVED MEMORY
#
# The policies below define how the total resource pool memory is divided between
# ordinary Workspace Service requests (1st class requests) and Asynchronous
# requests (SI or backfill requests).
#
# It's important to note that these policies are preventive, in the sense that
# free space is reserved for future 1st class requests, but if the reserved space
# is still not sufficient to satisfy a 1st class request, SI or backfill requests
# will be pre-empted on-the-fly in order to free the needed amount of space
# (emergency pre-emption).
# This policy defines the minimum amount of free memory (in MB) that should be
# reserved exclusively for 1st class requests, and thus will not be allocated for
# SI or backfill requests.
async.policies.minreservedmem=2048
# MAX UTILIZATION
#
# This policy defines the maximum utilization (in %) for 1st class requests. When
# the utilization raises above this value, Spot Instance or backfill requests are
# pre-empted (preventive pre-emption) in order to decrease the utilization of 1st
# class requests.
#
# The Workspace Service will reserve an amount of free memory for 1st class requests
# in order to ensure that the utilization of 1st class requests is equal or below
# that value, unless there is no more available memory to reserve.
#
# The amount of reserved memory for 1st class requests is derived from this formula:
#
# * maxUtilization = usedMem / (usedMem + reservedMem)
#
# Reorganized, becomes:
#
# * reservedMem = (1 - maxUtilization)*usedMem/maxUtilization
async.policies.maxutilization=0.7
Jump to Line
Something went wrong with that request. Please try again.