The first experiment bundled with Swan is a sensitivity experiment for the distributed data cache, memcached. The experiment enables experimenters to generate a so-called sensitivity profile, which describes the violation of Quality of Service under certain conditions, such as CPU cache or network bandwidth interference. Swan does this by carefully controlling execution of memcached and its Colocation with aggressor processes i.e. noisy neighbors or antagonists. From this point on, Swan coordinates execution of a distributed load generator called mutilate which puts memcached under controlled load. Snap plugins and tasks are coordinated by Swan to collect latency and load metrics and tags them with experiment identifiers. All the metrics are then sent to Cassandra and then extracted by Jupyter. Picture below shows the experiments components.
The memcached sensitivity experiment carries out several measurements to inspect the performance of colocated workloads on a single node. The experiment exercises memcached under several conditions and gathers Quality of Service metrics like latency, so-called _Service Level Indicators (SLI), and the achieved load in terms of Request per Second (RPS) or Queries Per Second (QPS).
The conditions, currently, involve Colocation of memcached with a list of specialized aggressors and one deep-learning workload.