Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
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 recieved 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.