Giter Club home page Giter Club logo

parties's Introduction

PARTIES

PARTIES is a resource manager that manages and partitions hardware resources for colocated latency-critical(LC) services on the same server node. It enables one or more LC services to share a physical node without QoS violations. PARTIES leverages a set of hardware and software resource partitioning mechanisms to adjust allocations dynamically at runtime, in a way that meets the QoS requirements of each co-scheduled workload, and maximizes throughput for the machine. For more details, please check out the PARTIES paper (PDF).

PARTIES repository structure

setup

  • lxc.md: notes to set up Linux Container (LXC).
  • portfow.sh: bash script to set up network port forwarding, required by LXC.
  • moveirq.sh: bash script to reserve cores for IRQ (network interrupts).
  • restart.sh: bash script to re-set up the environment after the physical machine is rebooted.
  • isolation.md: notes to set up hardware and software partitioning mechanims.
  • profile.md: notes of some useful profiling tools, to help understand your applications.

apps

Memcached

  • server/README.md: instructions to install the Memcached server application
  • client/README.md: instructions to install the Memcached client (load generator)
  • client/run.sh: bash script to run the clients to test Memcached server performance

Nginx

  • server/README.md: instructions to install the NGINX server application
  • server/config: an example of the NGINX LXC config
  • server/nginx.conf&default: NGINX configurations
  • server/gen_html.pl: Perl script to generate NGINX datasets. Instructions also included in README.md.
  • client/README.md: instructions to install the NGINX client, wrk2
  • client/run.sh: bash script to run the wrk2 load generator to test NGINX

MongoDB

  • server/README.md: instructions to install the MongoDB server application
  • client/README.md: instructions to install YCSB.
  • client/workload: a configuration file that YCSB needs
  • client/run.sh: bash script to run the YCSB load generator to test MongoDB

Tailbench (Xapian, Moses, Sphinx)

  • tailbench.md: notes to install Tailbench.

manager

  • PARTIES.py: Python script for the PARTIES controller.
  • config.txt: sample input of the PARTIES controller.
  • monitorN.py: Python script to monitor real-time usage of hardware resources. Not mandotory in the PARTIES controller.
  • README.md: notes to use the PARTIES controller

License & Copyright

PARTIES is free software; you can redistribute it and/or modify it under the terms of the MIT License.

PARTIES was originally written by Shuang Chen at Cornell University, and per Cornell University policy, the copyright of this original code remains with the Board of Trustees of Cornell University.

If you use this software in your research, we request that you reference the PARTIES paper ("PARTIES: QoS-Aware Resource Partitioning for Multiple Interactive Services", Shuang Chen, Christina Delimitrou, José F. Martínez, ASPLOS, April 2019), and that you send us a citation of your work.

parties's People

Contributors

sc2682cornell avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.