f04f86cc6226779545d79cf38aa24bcf6179ba34
Task 5
Prerequisites
Ensure you have the following installed on your system:
- libvirt (latest version recommended)
- Terraform (latest version recommended)
- Wireshark (latest version recommended)
Deploying environment
NOTE: You must have libvirt daemon running running
Goto Terraform directory
cd terraform
Create and edit dotenv file
cp .env.template .env
Add client and server records to /etc/hosts
# ...
10.6.6.10 client
10.6.6.20 server
Init Terraform
terraform init
Start the environment
terraform apply
NOTE: Wait for several minutes until all required things will provided to the vms
CheatSheet
Commands for client
# For HTTP/1.1 (TCP)
curl server:80/<size>MB.file -o <size>MB.file
# For HTTP/2 (TCP)
curl --http2-prior-knowledge server:81/<size>MB.file -o <size>MB.file
# For HTTP/3 (UDP)
./curl --http3-only --insecure https://server:443/<size>MB.file -o <size>MB.file
# For TFTP (UDP)
tftp server -c get /var/www/<size>MB.file
Run benchmarks
./scripts/run_benchmarks
This script does the following things
Change CC (on vms, 4 combinations for tcp protocols)
sysctl net.ipv4.tcp_congestion_control=bbr|reno -w
Starts tcpdump on hypervisor with filters according to protocol
tcpdump -i "$interface" -w "$pcap_file" "$filter"
Runs download command according to protocol
Refer to this
Stops tcpdump
Merge pcap files
mergecap -w merged.pcap dump1 dump2 ...
Change link profile
./scripts/change_profile
And follow the instructions
This script just executes this command on server vm
tc qdisc replace dev $interface root netem delay ${delay}ms loss ${loss}%
OR:
tc qdisc del dev $interface root
Description
Languages
Shell
43%
HCL
30.9%
Smarty
20.4%
XSLT
5.7%