文章归档

Heracles: Improving Resource Efficiency at Scale

论文原址:

  1. http://csl.stanford.edu/~christos/publications/2015.heracles.isca.pdf
  2. https://cs.stanford.edu/~davidlo/resources/2015.heracles.isca.slides.pdf

Average server utilization in most datacenter is low, ranging between 10%~50%. Difficult to consolidate the latency-critical services on a subset of highly utilized servers. Increase the server utilization by launching best-effort tasks on the same server with a latency-critical job

Goal: Eliminate SLO violations at all levels of load for the LC job while maximizing the throughput for BE tasks.

1. What is Heracles?

A real-time, feedback-based controller system

  1. Enables the safe co-location of best-effort(BE) tasks alongside a latency-critical(LC) service
  2. Ensures that LC jobs meet their target while maximizing the resources given to BE tasks

Four hardware and software isolation mechanisms:

  • Software
    1. Core isolation: Pin workload to a set of core using cpuset cgroups
    2. Network traffic control: Limit the outgoing bandwidth of BE tasks using Linux traffic controlNo limit on LC job.
  • Hardware
    1. Shared cache partitioning: 
      1. Cache Allocation Technology(CAT) in Intel Haswell+ CPU, Use way-partitioning to define non-overlapping partitions on LLC.
      2. Implement software monitor to track the bandwidth usage of LC and BE jobs, Scale down the total of cores for BE jobs if LC jobs does not receive sufficient bandwidth
    2. Fine-grained power/frequency setting: CPU frequency monitoring, Running Average Power Limit(RAPL), and per-core DVFS.

2. The Design Approach

What: Maximize utilization with the constraint that the SLO must be met

How: Decomposes the high-dimensional optimization problem into many smaller and independent problem, decoupling interference sources. and adjust the BE job allocation by monitoring latency, latency slack, and load

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>