Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 194 lines (157 sloc) 7.377 kb
c53bebc @timf Consolidated all backfill and spot settings to async.conf and moved the ...
timf authored
1 ################################################################################
2 #
3 # This file is used for configuring asynchronous requests (Spot Instances and
4 # backfill requests) for this site.
5 #
6 ################################################################################
7
3c422fd @timf docs for backfill/spot (spot client guide coming next)
timf authored
8 # NOTE: There is extra documentation on these features online, see:
9 # http://www.nimbusproject.org/docs/current/admin/reference.html#backfill-and-spot-instances
10
c53bebc @timf Consolidated all backfill and spot settings to async.conf and moved the ...
timf authored
11
12 # SI ENABLED
13 #
14 # Indicates whether the spot instances feature is enabled (true) or disabled
15 # (false) for this site. This is for remote requests -- if backfill is enabled
16 # below, the superuser backfill reqs will be honored but any remote attempt to
17 # add asynchronous requests will not be honored. If you switch this from 'true'
18 # to 'false', it will only prevent new requests from being added.
19
20 si.enabled=false
21
22
23 # BACKFILL ENABLED
24 #
25 # Indicates whether the backfill feature is enabled (true) or disabled (false)
26 # for this site. If you switch this from 'true' to 'false', it will cause all
27 # currently running backfill nodes to be destroyed.
28
29 backfill.enabled=false
30
31
32 ################################################################################
33 #
34 # Backfill settings
35 #
36 ################################################################################
37
38 # The intent of backfill is to provide a Nimbus cloud with the ability to deploy
39 # a VM on idle nodes. Such a VM could be configured with a service like Condor,
40 # allowing the VM to contribute cycles to some other purpose instead of wasting
d9f0580 @priteau Fix a small typo: s/recieved/received/
priteau authored
41 # cycles on idle cloud nodes. When a user request is received the VM is terminated
c53bebc @timf Consolidated all backfill and spot settings to async.conf and moved the ...
timf authored
42 # immediately and the user VM is deployed.
43 #
44 # The VM used by backfill (and the services inside of it) must be able to handle
45 # a hard shutdown. A hard shutdown is used to minimize the turnaround time for
46 # responding to user requests.
47 #
48 # A way to think about backfill nodes is that they are spot instances with the
49 # very lowest priority (lower than the minimum spot bid) and only registered by
50 # the Nimbus administrator.
51
52 # MAX INSTANCES
53 #
54 # Max instances is the maximum number of VM instances that backfill will deploy
55 # if it is enabled. If there is not enough space on the cloud for the maximum #
56 # of instances it will deploy as many as it can. For example, if max.instances
57 # is set to 12 on a 16 node cloud but there are 10 active user VMs then backfill
58 # will still launch 6 backfill nodes. If the spot instances settings have space
59 # reserved for regular requests (see the 'minreservedmem' and 'maxutilization'
60 # confs below), these backfill requests will be subject to that as well, so the
61 # site will not fill up completely.
62 #
63 # If max instances is set to 0 then backfill will use all idle VMMs.
64 #
65 # The default is 0.
66
67 max.instances=0
68
69
70 # DISK IMAGE
71 #
72 # The disk image is the image to use in the repository of the user configured
73 # below (repo.user). To set the instance type, see below (async.instancetype).
74
75 disk.image=backfill.img
76
77
78 # USER
79 #
80 # Authorization will be bypassed for this user but it needs to exist in order
81 # to have a repository account for propagating "disk.image". Add this user
82 # with the nimbus-new-user "--dn" option (set an explicit DN) or refer to a
83 # pre-existing (administrator) one.
84
85 repo.user=BACKFILL-SUPERUSER
86
87
88 ################################################################################
89 #
90 # Spot Instances settings
91 #
92 ################################################################################
93
94 # INSTANCE TYPE
95 #
96 # Defines the instance type that will become available as spot instances or backfill.
97 # Supported instance types are: small, large and xlarge.
98 #
99 # Currently, Nimbus supports only one type of spot instance or backfill VM per
100 # service. The amount of memory for each instance type is defined in the
101 # elastic.conf file.
102
103 async.instancetype=small
104
105
106 # PRICING MODEL
107 #
108 # A pricing model is invoked every time the Spot Instances environment changes.
109 # This can happen in many situations: when a request arrives, is canceled or
110 # terminated, when the quantity of resources available for Spot Instances
111 # increases or decreases, etc.
112 #
113 # Given the actual requests, the maximum quantity of VMs for Spot Instances and
114 # the current spot price, a pricing model defines the next spot price based on
115 # this variables. Usually a spot price change causes requests to be allocated,
116 # if their bid is above the spot price, or pre-empted, if their bid is below
117 # the current spot price.
118 #
119 # This property defines which implementation of the
120 # org.globus.workspace.async.spotinstances.PricingModel Java interface should be
121 # used by the Spot Instances module to set the spot price. This class will be
122 # constructed by reflection, so it must be in the classpath of the Nimbus service.
123 #
124 # Currently there are two default implementations of the module, explained
125 # as follows:
126 #
127 # ** org.globus.workspace.async.pricingmodel.MaximizeUtilizationPricingModel **
128 #
129 # This pricing model aims to satisfy the maximum number of requests, giving
130 # priority to higher bid requests when there aren't available VMs to fulfill
131 # all requests. Suitable for scientific clouds.
132 #
133 # ** org.globus.workspace.async.pricingmodel.MaximizeProfitPricingModel **
134 #
135 # This pricing model aims to maximize the revenue of the cloud provider, without
136 # necessarily increasing cloud utilization. Suitable for commercial clouds.
137
138 si.pricingmodel=org.globus.workspace.async.pricingmodel.MaximizeUtilizationPricingModel
139
140
141 # MINIMUM PRICE
142 #
143 # Defines the minimum price (in allocation units) per minute that a Spot Instance
144 # can cost
145
146 si.minprice=0.1
147
148
149 ################################################################################
150 #
151 # Memory Management Policies
152 #
153 ################################################################################
154
155 # RESERVED MEMORY
156 #
157 # The policies below define how the total resource pool memory is divided between
158 # ordinary Workspace Service requests (1st class requests) and Asynchronous
159 # requests (SI or backfill requests).
160 #
161 # It's important to note that these policies are preventive, in the sense that
162 # free space is reserved for future 1st class requests, but if the reserved space
163 # is still not sufficient to satisfy a 1st class request, SI or backfill requests
164 # will be pre-empted on-the-fly in order to free the needed amount of space
165 # (emergency pre-emption).
166
167 # This policy defines the minimum amount of free memory (in MB) that should be
168 # reserved exclusively for 1st class requests, and thus will not be allocated for
169 # SI or backfill requests.
170
171 async.policies.minreservedmem=2048
172
173
174 # MAX UTILIZATION
175 #
176 # This policy defines the maximum utilization (in %) for 1st class requests. When
177 # the utilization raises above this value, Spot Instance or backfill requests are
178 # pre-empted (preventive pre-emption) in order to decrease the utilization of 1st
179 # class requests.
180 #
181 # The Workspace Service will reserve an amount of free memory for 1st class requests
182 # in order to ensure that the utilization of 1st class requests is equal or below
183 # that value, unless there is no more available memory to reserve.
184 #
185 # The amount of reserved memory for 1st class requests is derived from this formula:
186 #
187 # * maxUtilization = usedMem / (usedMem + reservedMem)
188 #
189 # Reorganized, becomes:
190 #
191 # * reservedMem = (1 - maxUtilization)*usedMem/maxUtilization
192
193 async.policies.maxutilization=0.7
Something went wrong with that request. Please try again.