This repository comprises of scheduling latency, file transfer latency, Throughput computation experiments
This directory comprises of results of Redis-Cli Benchmarking techniques Domains tested: 1/7, 2/7, 3/7, 4/7 (The experimental setup assumes Redis-Cli software to be installed in the VM that is being evaluated)
Steps:
-
Run a compute intensive Linux command
yes
in other VMs that are not being evaluated. (For example: If 2 VMs with availability factors 3/7 and 4/7 are operating in RRP-controlled cpupool. Let us suppose VM with availability factor 3/7 is being evaluated, runyes
in 4/7 VM.) -
Run the command in vantage VM:
nohup ./redis-cli --intrinsic-latency 100 2>&1 > output.txt &
-
Immediately after the command is run, try to obtain the PID of this process using (ps -ef)
-
Next, use this PID in
chrt -v -f -a -p 1 <PID>
to change the SCHEDULING POLICY of this process to SCHED_FIFO -
Try to maintain a remote counter to keep track of 100s ~ 1min 40s time period.
-
Results are stored in output.txt file. To collect the max latency -> avg run result * worst_run gives the max latency of this run
-
Repeat this experiment 3 times for each domain and gather the averages of these 3 runs.
Note: Repeat the process for following domain pairs <3/7, 4/7>, <1/14, 3/7, IDLE>, ...
If unschedulable using RRP-AAF, omit that pair and proceed with the next pair.
Software Requirements for Vantage VM: Nginx application web-server, PHP 7.0 Fast-CGI, ngrok.
Software Requirements for Remote Client Machine: WRK2 tool, Python-3 (to run latency_throughput_extractor.py)
Steps:
-
Run a compute intensive Linux command
yes
in other VMs that are not being evaluated. (For example: If 2 VMs with availability factors 3/7 and 4/7 are operating in RRP-controlled cpupool. Let us suppose VM with availability factor 3/7 is being evaluated, runyes
in 4/7 VM.) -
Run random file generator program to generate a total of 1GB files (899 1KB files, 1000 100KB files, 1000 1MB files) and place all these files in a
tmpfs
directory where PHP application resides. -
Replace
/etc/nginx/nginx.conf
with the nginx.conf provided in this repo. -
Run
sudo nginx -s reload
andsudo nginx -t
to confirm Nginx application web server is up and running. -
Run
sudo systemctl restart php7.0-fpm
to activate PHP 7.0 fastCGI gateway. -
Set the priority of nginx worker and master processes from
SCHED_OTHER
toSCHED_FIFO
. -
Run ngrok and copy the https address.
-
In the client machine, Now open
http_client.lua
and change ip address in line 82 from the above copied addr. -
In the client machine, run
script_http_automate.sh
, the ngrok on Vantage VM should now start serving the file-size requests. This can be confirmed by200 OK
status. -
If the status is
502 Bad Gateway
, it implies something is wrong in the experimental setup. -
On the client machine, the results are gathered in
results
directory.