Professional Documents
Culture Documents
Proceedings of USITS '03: 4th USENIX Symposium On Internet Technologies and Systems
Proceedings of USITS '03: 4th USENIX Symposium On Internet Technologies and Systems
Proceedings of
USITS ’03:
4th USENIX Symposium on
Internet Technologies and Systems
© 2003 by The USENIX Association All Rights Reserved For more information about the USENIX Association:
Phone: 1 510 528 8649 FAX: 1 510 548 5738 Email: office@usenix.org WWW: http://www.usenix.org
Rights to individual papers remain with the author or the author's employer.
Permission is granted for noncommercial reproduction of the work for educational or research purposes.
This copyright notice must be included in the reproduced paper. USENIX acknowledges all trademarks herein.
Model-Based Resource Provisioning in a Web Service Utility
C Resource management for diverse workloads. Table 1: Input parameters for Web service models.
Each service has a distinct profile for reference
locality and the CPU-intensity of requests. The 3 Web Service Models
model parameters capture these properties, en-
abling the executive to select allotments to meet This section presents simplified analytical models to pre-
performance goals. These may include allocating dict performance of Web services with static content,
surplus resources to optimize global metrics (e.g., based on the system model depicted in Figure 3. Table 1
global average response time, yield, or profit). summarizes the model parameters and other inputs. Ta-
ble 2 summarizes the model outputs, which guide the
C Storage-aware caching. Storage units vary in their choices of the resource allocator described in Section 4.
performance due to differences in their configura- The models are derived from basic queuing theory and
tions or assigned loads. Models capture these dif- recent work on performance modeling for Web services.
ferences, enabling the resource scheduler to com- They focus on average-case behavior and abstract away
pensate by assigning different amounts of memory much detail. For example, they assume that the network
to reduce the dependence on storage where appro- within the data center is well-provisioned. Each of the
priate. Recent work [16] proposed reactive kernel models could be extended to improve its accuracy; what
heuristics with similar goals. is important is the illustration they provide of the poten-
tial for model-based resource provisioning.
C On-line capacity planning. The models can deter-
mine aggregate resource requirements for all hosted 3.1 Server Memory
services at observed or possible load levels. This is
useful for admission control or to vary hosting ca- Many studies indicate that requests to static Web objects
pacity with offered load. follow a Zipf-like popularity distribution [11, 38]. The
probability K of a request to the th most popular object
is proportional to 8
H , for some parameter . Many re-
This flexibility in meeting diverse goals makes MBRP quests target the most popular objects, but the distribu-
a powerful basis for proactive resource management in tion has a heavy tail of unpopular objects with poor ref-
utilities. erence locality. Higher values increase the concentra-
Parameter Meaning 45
µS = 453
CPU response time
40 o: Measured response time
These models are cheap to evaluate and they capture the C Candidate plans initial candidate allotment vectors
key behaviors that determine application performance. that it predicts will meet SLA response time targets
They were originally developed to improve understand- for each service at its load .
ing of service behavior and to aid in static design of C LocalAdjust modifies a candidate vector to adapt to
server infrastructures; since they predict how resource
demands change as a function of offered load, they can a local resource constraint or surplus exposed dur-
also act as a basis for dynamic provisioning in a shared ing assignment. For example, the assignment plan-
hosting utility. A key limitation is that the models as- ner might place some service on a server with insuf-
sume a stable average-case per-request behavior, and ficient memory to supply the candidate ; Local-
they predict only average-case performance. For exam- Adjust constructs an alternative vector that meets
ple, the models here are not sufficient to provision for the targets within the resource constraint, e.g., by
probabilistic performance guarantees. Also, since they increasing to reduce .
do not account for interference among workloads us- C GroupAdjust modifies a set of candidate vectors to
ing shared resources, MBRP depends on performance adapt to a resource constraint or surplus exposed
isolation mechanisms (e.g., [9, 36]) that limit this in- during assignment. It determines how to reduce or
terference. Finally, the models do not capture over- augment the allotments to optimize a global metric,
load pathologies [37]; MBRP must assign sufficient re- e.g., to minimize predicted average response time.
sources to avoid overload, or use dynamic admission For example, the assignment planner might assign
control to prevent it. multiple hosted services to share a network stor-
Importantly, the models are independent of the MBRP age unit; if the unit is not powerful enough to meet
framework itself, so it is possible to replace them with the aggregate resource demand, then GroupAdjust
more powerful models or extend the approach to a wider modifies each vector to conform to the constraint.
We have implemented these primitives in a prototype ex- 250 70
ecutive for a utility OS. The following subsections dis-
cuss each of these primitives in turn. 60
200
4.1 Generating Initial Candidates Ã
Storage Allotment ( )
50
Memory (MB)
To avoid searching a complex space of resource combi- 150
40
nations to achieve a given performance goal, Candidate
follows a simple principle: build a balanced system. The
allocator configures CPU and storage throughput ( ) 30
100
allotments around a predetermined average utilization
level ±&²´³)µ;¶)·A² . The ±²´³µ¶)·A² may be set in a “sweet spot” 20
range from 50-80% that balances efficient use of stor- 50
age and CPU resources against queuing delays incurred 10
Storage Allotment ( Ä )
at servers and storage units. The value for ±²´³µ;¶)·A² is a Memory Allotment
separate policy choice. Lower values for ±²´³µ¶)·A² provide 0 0
more “headroom” to absorb transient load bursts for the 0 100 200 300 400
service, reducing the probability of violating SLA tar- Arrival Rate (Â )
gets. The algorithm generalizes to independent ± ²´³µ¶)·A²
¦¸¹º8»¼1½)¹ º
¹
¸¾8¿Kº
½)¹
values for each ® pair. , Figure 5: Using Candidate and LocalAdjust to determine
memory and storage allotments for a service. As service load
The Candidate algorithm consists of the following steps: ( y ) increases, Candidate increases the storage share Å to meet
response time targets. After encountering a resource constraint
C Step 1. Predict CPU response time À at the con- at Å© ÇÆYÈÈ IOPS, LocalAdjust transforms the candidate allot-
figured ± ²´³µ;¶)·A² , as described in Section 3.4. Select ments to stay on target by adding memory instead.
initial
.
C Step 2. Using and ±²´³)µ;¶)·A² , predict storage re-
allotments
¯®k° for an example service as offered Web
sponse time using Equation
(4). Note that the load increases along the -axis. Candidate responds
allocator does not know at this stage, but it is to increasing load by increasing rather than . This
not necessary because depends only on and is because increasing does not require a higher hit ra-
the ratio of / , which is given by ±²´³µ¶)·A² . tio to meet a fixed response time target. For a fixed
C Step 3. Determine the required server memory hit and corresponding , grows linearly with , and
so the storage allotment also grows linearly following
ratio ( ) to reach the SLA target response time ,
' ±&²´³µ¶)·A² .
using Equation (5) and solving for as:
Figure 5 also shows how the provisioning scheme ad-
Á justs the vectors to conform to a resource constraint.
(6)
This example constrains to 200 IOPS, ultimately forc-
C Step 4. Determine the storage arrival rate from ing the system to meet its targets by increasing the can-
didate . Candidate itself does not consider resource
and , using Equation (2). Determine and as-
constraints; the next two primitives adapt allotment vec-
sign the resulting
candidate storage throughput al-
tors on a local or group basis to conform to resource
lotment = /± ²´³µ¶)·A² .
constraints, or to allocate surplus resources to improve
C Step 5. Loop to step 2 to recompute storage re- performance according to system-wide metrics.
sponse time with the new value of . Loop until
the difference of values is within a preconfigured 4.2 Local Constraint or Surplus
percentage of
P .
The input to LocalAdjust is a candidate allotment vector
C Step 6. Determine and assign the memory allot-
and request arrival rate , together with specified con-
ment necessary to achieve the hit ratio , using straints on each resource. The output of LocalAdjust is
Equation (1). an adjusted vector that achieves a predicted average-case
response time as close as possible to the target, while
Note that the candidate is the minimum required to conforming to the resource constraints. Since this pa-
meet the response time target. Given reasonable tar- per focuses primarily on memory and storage resources,
gets, Candidate leaves memory undercommitted. To il- we ignore CPU constraints. Specifically, we assume that
lustrate, Figure 5 shows candidate storage and memory the expected CPU response time for a given ±²´³µ¶)·A²
40 É 50 Ê = 25
= .6, T= 20000 Objects Ê
É = .6, T= 40000 Objects 45 Ê = 50
35 É Ê = 75
= .9, T = 20000 Objects = 100
É = .9, T = 40000 Objects
40
35
25 30
20 25
20
15
15
10
10
5 5
0 0
0 20 40 60 80 100 0 20 40 60 80 100
Available Memory (MB) Available Memory (MB)
Figure 6: Memory allotments by GroupAdjust for four competing services with different caching profiles (left) and different
request arrival rates (right).
is fixed and achievable. CPU allotments are relatively
and at using Equations (1) and (2), and use
straightforward because memory and storage allotments
to determine the adjusted storage allotment as
affect per-request CPU demand only minimally. For ex-
± ²´³)µ;¶)·A² . Then compensate for the reduced by in-
ample, if the CPU is the bottleneck, then the allotments
creasing further to reduce storage utilization levels
be-
for other resources are easy to determine: set to the low ±²´³µ¶)·A² , improving the storage response time .
saturation request throughput rate, and provision other If both and are constrained, assign both to their
resources as before. maximum values and report the predicted response time
If the storage constraint falls below the candidate stor- using the models in the obvious fashion. LocalAdjust ad-
age allotment , then LocalAdjust assigns the maximum justs allotments to consume a local surplus in the same
value to , and rebalances the system by expanding the way. This may be useful if the service is the only load
memory allotment to meet the response
time target component assigned to some server or set of servers.
given the lower allowable request rate for storage. Surplus assignment is more interesting when the system
Determine the allowable S± ²´³µ¶)·A² at the precon- must distribute resources among multiple competing ser-
figured ± ²´³)µ;¶) ·A² . Determine the hit ratio needed to vices, as described below.
achieve this using Equation (2), and the memory al-
lotment to achieve using Equation (1). 4.3 Group Constraint or Surplus
Figure 5 illustrates the effect of LocalAdjust on the can-
ÌËÍ&Í
didate vector under a storage constraint at GroupAdjust adjusts a set of candidate allotment vec-
IOPS. As load increases, LocalAdjust meets the re- tors to consume a specified amount of memory and/or
sponse time target by holding to the maximum and storage resource. GroupAdjust may adapt the vectors to
growing instead. The candidate varies in a conform to resource constraints or to allocate a resource
(slightly) nonlinear fashion because grows as in- surplus to meet system-wide goals.
creases, so larger shares of the increases to are ab- For example, GroupAdjust can reprovision available
sorbed by the cache. This effect is partially offset by the memory to maximize hit ratio across a group of hosted
dynamics of Web content caching captured in Equation services. This is an effective way to allocate surplus
(1): due to the nature of Zipf distributions, grows log- memory to optimize global response time, to degrade
arithmically with , requiring larger marginal
increases service fairly when faced with a memory constraint, or
to to effect the same improvement in . to reduce storage loads in order to adapt to a storage con-
If memory is constrained, LocalAdjust sets to the straint. Note that invoking GroupAdjust to adapt to con-
maximum and rebalances the system by expanding straints on specific shared storage units is an instance of
(if possible). The algorithm is as follows: determine storage-aware caching [16], achieved naturally as a side
effect of model-based resource provisioning.
30
memory to services with lower . In the low-memory
cases, it prefers higher-locality services (higher ); as
25 total memory increases and the most popular objects of
higher services fit in cache, the highest marginal ben-
Memory Allotment (MB)
1 Services Equal
2 Svc 0: increase Î * 2
3 Svc 1: increase Î * 3
Figure 8: Allotments Ï }Ð;ÅÑ for three competing services in a multiple step experiment. For each step, the graphs represent the
allotment percentage of each resource received by each service.
ment modifies a single parameter in each of six steps and 140 4.5
Thousands
Allotted Memory
shows its effect on the allotments; the changes through Consumed Memory 4
the steps are cumulative. 120
Predicted × Storage (IOPS)
(IOPS)
80
C Step 2 doubles for s0. The system shifts memory 2.5
S
and increases its to rebalance storage utilization
to ±²´³µ¶·1² , compensating for a higher storage load. 1.5
40
1
C Step 3 triples the arrival rate for s1. The system
20
shifts memory to s1; note that the memory shares 0.5
match each service’s share of the total request load. 0 0
The system also rebalances storage by growing s1’s 0 10 20 30 40 50
share at the expense of the lightly loaded s2. Time (Minutes)
100
80
40
Ø 60
30
40
20
20
10
0
0 20 40 60 80 100 0
Figure 10: Arrival rate y for two services handling synthetic 0 20 40 60 80 100
load swells under the Dash Web server. Figure 11: Memory allotments } for two services handling
synthetic load swells under the Dash Web server. As load in-
creases, LocalAdjust provisions additional memory to the ser-
vices to keep the response time within SLA limits. Service 1
The prototype utility OS executive coordinates resource
is characterized by higher storage access costs and therefore
allocation as described in Section
4. It periodically receives more memory to compensate.
observes request arrival rates ( ) and updates resource
slices to adapt to changing conditions. The executive
implements its actions through two mechanisms. First,
it issues directives to the switch to configure the active trols memory usage as reported in the experiments. Web
server sets for each hosted service; the switch distributes traffic originates from a synthetic load generator ([10])
incoming requests for each service evenly across its ac- or Web trace replay as reported; the caching profiles
h
tive set. Second, it controls the resource shares allocated ® ® are known a priori and used to parameterize
to each service on each Web server. the models. All machines run FreeBSD 4.4.
To allow external resource control, our prototype uses We first present a simple experiment to illustrate the
a new Web server that we call Dash [8]. Dash acts as Dash resource control and to validate the hit ratio model
a trusted component of the utility OS; it provides a pro- (Equation (2)). Figure 9 shows
the predicted and ob-
tected, resource-managed execution context for services, served storage request rate in IOPS as the service’s
and exports powerful resource control and monitoring memory allotment varies. The Web load is an accel-
interfaces to the executive. Dash incorporates a DAFS erated 40-minute segment of a 2001
IBM trace [12] with
user-level file system client, which enables user-level re- steadily increasing request rate . Larger improves
source management in the spirit of Exokernel [19], in- the hit ratio for the Dash server cache; this tends to re-
cluding full control over file caching and and data move- duce , although reflects changes in as well as
ment [24]. DAFS supports fully asynchronous access hit ratio. The predicted approximates the observed
ÜÛ&Í
to network storage, enabling a single-threaded, event- I/O load; the dip at Ú minutes is due to a tran-
driven Web server structure as proposed in the Flash sient increase in request locality, causing an unpredicted
Web server work [27]—hence the name Dash. In addi- transient improvement in cache hit ratio. Although the
tion, Dash implements a decentralized admission control models tend to be conservative in this example, the ex-
scheme called Request Windows [18] that approximates periment demonstrates the need for a safety margin to
proportional sharing of storage server throughput. The protect against transient deviations from predicted be-
details and full evaluation of Dash and Request Windows havior.
are outside the scope of this paper. To illustrate the system’s dynamic behavior in storage-
For our experiments, the Dash and DAFS servers run aware provisioning, we conducted an experiment with
"
on SuperMicro SuperServer 6010Hs with 866 MHz two services with identical caching profiles ® ®
Pentium-III Xeon CPUs; the DAFS servers use one 9.1 and response time targets, serving identical synthetic
GB 10,000 RPM Seagate Cheetah drive. Dash con- load swells on a Dash server. The peak IOPS through-
250 350
Service 1 Arrival, Moving Average Service 2, switching
150
200
100
150
100
50
50
0 0
Time Time
Figure 13: Arrival rates for competing services (left) and client response time with and without a bin-packing assignment phase to
switch Web servers (right) handling the service.
1000
The last experiment uses a rudimentary assignment plan-
Ý 800 ner to illustrate the role of assignment in partitioning
cluster resources for response time targets. We com-
600 pared two runs of three services on two Dash servers
under the synthetic loads shown on the left-hand side
400
of Figure 13, which shows a saturating load spike for
200 service
à
3. In the first run, service 1 is bound to server
and services 2 and 3 are bound to server á . This
0 results in a response time jump for service 2, shown
0 20 40 60 80 100 in the right-hand graph in Figure 13; since the system
cannot meet targets for both services, it uses GroupAd-
Figure 12: I/O rate ( yk ) for two services handling synthetic
just to provision á ’s resources for the best average-case
load swells under the Dash Web server. As additional memory
response time. The second run employs a simple bin-
is allocated to the services to meet SLA targets, the storage ar-
rival rate decreases. Service 1 storage load reduces at a greater packing scheme to assign the provisioned resource slices
rate due to the additional memory allocated to this service. toà servers. In this run, the system reassigns service 2 to
when the load spike for service 3 exposes the local
resource constraint on á ; this is possible because Can- à
didate determines that there are sufficient resources on
puts available at the storage server for each service (re- to meet the response time targets for both services 1 and
flected in the
Pß parameters) are constrained at different 2. To implement this choice, the executive directs the
levels, with a more severe constraint for service 1. Fig- à
switch to route requests for service 2 to rather than
ure 10 shows the arrival rates and the values smoothed á . This allows service 2 to continue meeting its tar-
by a “flop-flip” stepped filter [12] for input to the exec- get. This simple example shows the power of the model-
utive. Figure 11 shows the memory allotments for each based provisioning primitives as a foundation for com-
service during the experiments,
and Figure 12 shows the prehensive resource management for cluster utilities.
resulting storage loads . The storage constraints force
the system to assign each service more memory to meet
6 Related Work vice. It is useful for utilities that do not manage request
traffic within the cluster. In contrast, our approach uses
Adaptive resource management for servers. Aron [6] server-level (rather than cluster-level) resource control
uses kernel-based feedback schedulers to meet latency mechanisms in concert with redirecting switches.
and throughput goals for network services running on
a single shared server. Abdelzaher et. al. [1] have The more recent Neptune [32] work proposes an alter-
addressed the control-theoretical aspects of feedback- native to provisioning (or partitioning) cluster resources.
controlled Web server performance management. Neptune maximizes an abstract SLA yield metric, simi-
larly to other utility resource managers [12, 21, 22]. Like
SEDA [37] reactively provisions CPU resources (by SLAP, each server schedules requests locally to max-
varying the number of threads) across multiple service imize per-request yield. Neptune has no explicit pro-
stages within a single server. SEDA emphasizes re- visioning; it distributes requests for all services evenly
quest admission control to degrade gracefully in over- across all servers, and relies on local schedulers to max-
load. A utility can avoid overload by expanding re- imize global yield. While this approach is simple and
source slices and recruiting additional servers as traffic fully decentralized, it precludes partitioning the clus-
increases. SEDA does not address performance isolation ter for software heterogeneity [5, 25], memory local-
for shared servers. ity [14, 26], replica control [17, 31], or performance-
Resource management for cluster utilities. Several aware storage placement [3].
studies use workload profiling to estimate the resource Virtual Services [29] proposes managing services with
savings of multiplexing workloads in a shared utility. multiple tiers on different servers. This paper shows
They focus on the probability of exceeding performance how MBRP coordinates provisioning of server and stor-
requirements for various degrees of CPU overbook- age tiers; we believe that MBRP can extend to multi-tier
ing [4, 6, 34]. Our approach varies the degree of over- services.
booking to adapt to load changes, but our current models
consider only average-case service quality within each Memory/storage management. Kelly [20] proposes a
interval. The target utilization parameters (± ²´³)µ;¶)·A² ) al- Web proxy cache replacement scheme that considers the
low an external policy to control the “headroom” to han- origin server’s value in its eviction choices. Storage-
dle predicted load bursts with low probability of violat- Aware Caching [16] develops kernel-based I/O caching
ing SLA targets. heuristics that favor blocks from slower storage units.
MBRP shares the goal of a differentiated caching ser-
There is a growing body of work on adaptive re- vice, but approaches it by provisioning memory shares
source management for cluster utilities under time- based on a predictive model of cache behavior, rather
varying load. Our work builds on Muse [12], which than augmenting the replacement policy. MBRP sup-
uses a feedback-controlled policy manager and redirect- ports a wide range of system goals in a simple and direct
ing switch to partition cluster resources; [39] describes way, but its benefits are limited to applications for which
a similar system that includes a priority-based admis- the system has accurate models.
sion control scheme to limit load. Levy [21] presents an
enhanced framework for dynamic SOAP Web services, Several systems use application-specific knowledge to
based on a flexible combining function to optimize con- manage I/O caching and prefetching. Patterson et.
figurable class-specific and cluster-specific objectives. al. [28] uses application knowledge and a cost/benefit
Liu [22] proposes provisioning policies (SLAP) for e- algorithm to manage resources in a shared I/O cache
commerce traffic in a Web utility, and focuses on max- and storage system. Faloutsos [15] uses knowledge of
imizing SLA profits. These systems incorporate analyt- database access patterns to predict the marginal benefit
ical models of CPU behavior; MBRP extends them to of memory to reduce I/O demands for database queries.
provision for multiple resources including cluster mem- Hippodrome [3] automatically assigns workload compo-
ory and storage throughput. nents to storage units in a utility data center. Our work
Several of these policy-based systems rely on resource is complementary and uses a closely related approach.
control mechanisms—such as Resource Containers [9] Hippodrome is model-based in that it incorporates de-
or VMware ESX [36]— to allow performance-isolated tailed models of storage system performance, but it has
server consolidation. Cluster Reserves [7] extends a no model of the applications themselves; in particular,
server resource control mechanism (Resource Contain- it cannot predict the effect of its choices on application
ers) to a cluster. These mechanisms are designed to en- service quality. Hippodrome employs a backtracking as-
force a provisioning policy, but they do not define the signment planner (Ergastulum); we believe that a similar
policy. Cluster Reserves adjusts shares on individual approach could handle server assignment in a utility data
servers to bound aggregate usage for each hosted ser- center using our MBRP primitives.
7 Conclusion B. Rochwerger. Oceano - SLA based management of a
computing utility. In Proceedings of the 7th IFIP/IEEE
Scalable automation of large-scale network services is International Symposium on Integrated Network Man-
a key challenge for computing systems research in the agement, May 2001.
next decade. This paper deals with a software frame- [6] M. Aron. Differentiated and Predictable Quality of Ser-
work and policies to manage network services as utilities vice in Web Server Systems. PhD thesis, Department of
whose resources are automatically provisioned and sold Computer Science, Rice University, October 2000.
according to demand, much as electricity is today. This [7] M. Aron, P. Druschel, and W. Zwaenepoel. Clus-
can improve robustness and efficiency of large services ter reserves: A mechanism for resource management
by multiplexing shared resources rather than statically in cluster-based network servers. In Proceedings of
overprovisioning each service for its worst case. the Joint International Conference on Measurement and
Modeling of Computer Systems (ACM SIGMETRICS
The primary contribution of this work is to demon- 2000), pages 90–101, June 2000.
strate the potential of model-based resource provision-
ing (MBRP) for resource management in a Web hosting [8] O. M. Asad. Dash: A direct-access Web server with
dynamic resource provisioning. Master’s thesis, Duke
utility. Our approach derives from established models of
University, Department of Computer Science, December
Web service behavior and storage service performance. 2002.
We show how MBRP policies can adapt to resource
availability, request traffic, and service quality targets. [9] G. Banga, P. Druschel, and J. C. Mogul. Resource Con-
tainers: A new facility for resource management in server
These policies leverage the models to predict the perfor-
systems. In Proceedings of the Third Symposium on
mance effects of candidate resource allotments, creating
Operating Systems Design and Implementation (OSDI),
a basis for informed, policy-driven resource allocation. February 1999.
MBRP is a powerful way to deal with complex resource
[10] P. Barford and M. E. Crovella. Generating representa-
management challenges, but it is only as good as the
tive Web workloads for network and server performance
models. The model-based approach is appropriate for
evaluation. In Proceedings of Performance ’98/ACM
utilities running a small set of large-scale server applica- SIGMETRICS ’98, pages 151–160, June 1998.
tions whose resource demands are a function of load and
stable, observable characteristics. [11] L. Breslau, P. Cao, L. Fan, G. Phillips, and S. Shenker.
Web caching and Zipf-like distributions: Evidence and
Acknowledgments implications. In Proceedings of IEEE Infocom ’99,
March 1999.
Darrell Anderson and Sara Sprenkle contributed to the ideas [12] J. S. Chase, D. C. Anderson, P. N. Thakar, A. M. Vahdat,
in this paper, and assisted with some experiments. We thank and R. P. Doyle. Managing energy and server resources
Mike Spreitzer, Laura Grit, and the anonymous reviewers for in hosting centers. In Proceedings of the 18th ACM Sym-
their comments, which helped to improve the paper. posium on Operating System Principles (SOSP), pages
103–116, October 2001.
References [13] M. DeBergalis, P. Corbett, S. Kleiman, A. Lent,
D. Noveck, T. Talpey, and M. Wittle. The Direct Access
[1] T. F. Abdelzaher, K. G. Shin, and N. Bhatti. Per- File System. In Proceedings of the 2nd USENIX Con-
formance guarantees for Web server end-systems: A ference on File and Storage Technologies (FAST), March
control-theoretical approach. IEEE Transactions on Par- 2003.
allel and Distributed Systems, June 2001.
[14] R. P. Doyle, J. S. Chase, S. Gadde, and A. M. Vah-
[2] D. C. Anderson and J. S. Chase. Fstress: A flexible net- dat. The trickle-down effect: Web caching and server re-
work file service benchmark. Technical Report CS-2002- quest distribution. Computer Communications: Selected
01, Duke University, Department of Computer Science, Papers from the Sixth International Workshop on Web
January 2002. Caching and Content Delivery (WCW), 25(4):345–356,
[3] E. Anderson, M. Hobbs, K. Keeton, S. Spence, M. Uysal, March 2002.
and A. Veitch. Hippodrome: running circles around stor- [15] C. Faloutsos, R. T. Ng, and T. K. Sellis. Flexible and
age administration. In Proceedings of the First Usenix adaptable buffer management techniques for database
Conference on File and Storage Technologies (FAST), management systems. IEEE Transactions on Computers,
January 2002. 44(4):546–560, April 1995.
[4] A. Andrzejak, M. Arlitt, and J. Rolia. Bounding the re- [16] B. C. Forney, A. C. Arpaci-Dusseau, and R. H. Arpaci-
source savings of utility computing models. Technical Dusseau. Storage-aware caching: Revisiting caching for
Report HPL-2002-339, HP Labs, November 2002. heterogeneous storage systems. In Proceedings of the
[5] K. Appleby, S. Fakhouri, L. Fong, G. Goldszmidt, First Usenix Conference on File and Storage Technolo-
M. Kalantar, S. Krishnakumar, D. Pazel, J. Pershing, and gies (FAST), January 2002.
[17] S. D. Gribble, E. A. Brewer, J. M. Hellerstein, and [29] J. Reumann, A. Mehra, K. G. Shin, and D. Kandlur. Vir-
D. Culler. Scalable, distributed data structures for In- tual Services: A new abstraction for server consolidation.
ternet service construction. In Proceedings of the Fourth In Proceedings of the Usenix 2000 Technical Conference,
Symposium on Operating Systems Design and Implemen- June 2000.
tation (OSDI), October 2000. [30] J. Rolia, S. Singhal, and R. Friedrich. Adaptive Inter-
[18] W. Jin, J. S. Chase, and J. Kaur. Proportional sharing for a net data centers. In Proceedings of the International
storage utility. Technical Report CS-2003-02, Duke Uni- Conference on Advances in Infrastructure for Electronic
versity, Department of Computer Science, January 2003. Business, Science, and Education on the Internet (SSGRR
[19] M. F. Kaashoek, D. R. Engler, G. R. Ganger, H. M. ’00), July 2000.
Briceno, R. Hunt, D. Mazieres, T. Pinckney, R. Grimm, [31] Y. Saito, B. N. Bershad, and H. M. Levy. Manageabil-
J. Jannotti, and K. Mackenzie. Application performance ity, availability and performance in Porcupine: A highly
and flexibility on Exokernel systems. In Proceedings of scalable cluster-based mail service. In Proceedings of the
the 16th ACM Symposium on Operating Systems Princi- 17th ACM Symposium on Operating Systems Principles
ples, October 1997. (SOSP), pages 1–15, Kiawah Island, December 1999.
[20] T. P. Kelly, S. Jamin, and J. K. MacKie-Mason. Variable [32] K. Shen, H. Tang, T. Yang, and L. Chu. Integrated re-
QoS from shared Web caches: User-centered design and source management for cluster-based Internet services.
value-sensitive replacement. In Proceedings of the MIT In Proceedings of the 5th Symposium on Operating Sys-
Workshop on Internet Service Quality Economics (ISQE tems Design and Implementation (OSDI ’02), December
99), December 1999. 2002.
[21] R. Levy, J. Nagarajarao, G. Pacifici, M. Spreitzer, [33] P. Shenoy and H. M. Vin. Cello: A disk scheduling
A. Tantawi, and A. Youssef. Performance management framework for next-generation operating systems. In
for cluster-based Web services. In Proceedings of the 8th Proceedings of the International Conference on Mea-
International Symposium on Integrated Network Man- surement and Modeling of Computer Systems (SIGMET-
agement (IM 2003), March 2003. RICS), June 1998.
[22] Z. Liu, M. S. Squillante, and J. L. Wolf. On maximiz- [34] B. Urgaonkar, P. Shenoy, and T. Roscoe. Resource over-
ing service-level-agreement profits. In Proceedings of booking and application profiling in shared hosting plat-
the ACM Conference on Electronic Commerce (EC’01), forms. In Proceedings of the 5th Symposium on Oper-
October 2001. ating Systems Design and Implementation (OSDI ’02),
December 2002.
[23] C. R. Lumb, A. Merchant, and G. A. Alvarez. Facade:
Virtual storage devices with performance guarantees. In [35] A. Venkataramani, P. Yalagandula, R. Kokku, S. Sharif,
Proceedings of the 2nd Usenix Conference on File and and M. Dahlin. The potential costs and benefits of
Storage Technologies (FAST), March 2003. long-term prefetching for content distribution. Computer
Communications: Selected Papers from the Sixth Interna-
[24] K. Magoutis, S. Addetia, A. Fedorova, M. Seltzer,
tional Workshop on Web Caching and Content Delivery
J. Chase, R. Kisley, A. Gallatin, R. Wickremisinghe, and
(WCW), 25(4):367–375, March 2002.
E. Gabber. Structure and performance of the Direct Ac-
cess File System. In USENIX Technical Conference, [36] C. A. Waldspurger. Memory resource management in
pages 1–14, June 2002. VMware ESX server. In Proceedings of the 5th Sympo-
sium on Operating Systems Design and Implementation
[25] J. Moore, D. Irwin, L. Grit, S. Sprenkle, and J. Chase.
(OSDI ’02), December 2002.
Managing mixed-use clusters with Cluster-on-Demand.
Technical report, Duke University, Department of Com- [37] M. Welsh, D. Culler, and E. Brewer. SEDA: An architec-
puter Science, November 2002. ture for well-conditioned, scalable Internet services. In
Proceedings of the Eighteenth Symposium on Operating
[26] V. S. Pai, M. Aron, G. Banga, M. Svendsen, P. Druschel,
Systems Principles (SOSP-18), Banff, Canada, October
W. Zwaenopoel, and E. Nahum. Locality-aware request
2001.
distribution in cluster-based network servers. In Proceed-
ings of the Eighth International Conference on Architec- [38] A. Wolman, G. Voelker, N. Sharma, N. Cardwell, A. Kar-
tural Support for Programming Languages and Operat- lin, and H. Levy. On the scale and performance of coop-
ing Systems (ASPLOS VIII), October 1998. erative Web proxy caching. In Proceedings of the 17th
ACM Symposium on Operating Systems Principles, De-
[27] V. S. Pai, P. Druschel, and W. Zwaenepoel. Flash: An
cember 1999.
efficient and portable Web server. In Proceedings of the
1999 Annual Usenix Technical Conference, June 1999. [39] H. Zhu, H. Tang, and T. Yang. Demand-driven service
differentiation in cluster-based network servers. In Pro-
[28] R. H. Patterson, G. A. Gibson, E. Ginting, D. Stodolsky,
ceedings of IEEE Infocom 2001, April 2001.
and J. Zelenka. Informed prefetching and caching. In
Proceedings of the Fifteenth ACM Symposium on Operat-
ing Systems Principles, pages 79–95, Copper Mountain,
CO, December 1995. ACM Press.