This project contains the simulator code used in Aequitas.
The simulator is based on YAPS.
For more details, please refer to our SIGCOMM' 22 paper.
For SIGCOMM' 22 artifact evaluation, please refer to the artifact-eval branch.
git clone https://github.com/SymbioticLab/Aequitas.git
cd Aequitas
aclocal
autoconf
automake --add-missing
./configure
make
Before launching the simulator, you may want to configure a few parameters in the configuration file located in Aequitas/py.
- flow_trace: CDF of RPC sizes used in the experiment
- load: average load
- burst_load: load during burst (should be > 1)
- traffic_pattern: incast or all-to-all
- burst_size: number of RPCs sent within the burst period
- qos_weights: QoS weights starting from the highest QoS, separated by comma. (e.g., 8,4,1) This also implies the number of QoS classes.
- qos_ratio: QoS distribution starting from the highest QoS, separated by comma and should sum up to 100. (e.g., 60,30,10)
- hardcoded_targets: QoS RPC network latency target starting from the highest QoS (excluding the lowest one) (e.g., 15,25)
- priority_downgrade: whether priority downgrade can happen. Must be 1 to have Aequitas admission control.
- normalized_lat: whether latency targets are normalized based on MTU; should be 1 for MTU-based SLOs with mixed-sized RPCs
- flow_type, queue_type, host_type: used to specify different work, including Aequitas and others. See ext/factory.h for more details.
For information on other parameters, please refer to the code or contact the author.
cd py
../simulator 1 [config_file]
Please consider citing our paper if you find Aequitas related to your research project.
@inproceedings{aequitas-sigcomm22,
title={Aequitas: Admission Control for Performance-Critical RPCs in Datacenters},
author={Yiwen Zhang and Gautam Kumar and Nandita Dukkipati and Xian Wu and Priyaranjan Jha and Mosharaf Chowdhury and Amin Vahdat},
booktitle={SIGCOMM},
year={2022}
}
Yiwen Zhang ([email protected])