Volt VMM (Neutron Stardust): source-available under AGPSL v5.0
KVM-based microVMM for the Volt platform: - Sub-second VM boot times - Minimal memory footprint - Landlock LSM + seccomp security - Virtio device support - Custom kernel management Copyright (c) Armored Gates LLC. All rights reserved. Licensed under AGPSL v5.0
This commit is contained in:
132
benchmarks/setup.sh
Executable file
132
benchmarks/setup.sh
Executable file
@@ -0,0 +1,132 @@
|
||||
#!/bin/bash
|
||||
# Volt Network Benchmark - Dependency Setup
|
||||
# Run on both client and server VMs
|
||||
|
||||
set -e
|
||||
|
||||
echo "=== Volt Network Benchmark Setup ==="
|
||||
echo ""
|
||||
|
||||
# Detect package manager
|
||||
if command -v apt-get &> /dev/null; then
|
||||
PKG_MGR="apt"
|
||||
INSTALL_CMD="sudo apt-get install -y"
|
||||
UPDATE_CMD="sudo apt-get update"
|
||||
elif command -v dnf &> /dev/null; then
|
||||
PKG_MGR="dnf"
|
||||
INSTALL_CMD="sudo dnf install -y"
|
||||
UPDATE_CMD="sudo dnf check-update || true"
|
||||
elif command -v yum &> /dev/null; then
|
||||
PKG_MGR="yum"
|
||||
INSTALL_CMD="sudo yum install -y"
|
||||
UPDATE_CMD="sudo yum check-update || true"
|
||||
else
|
||||
echo "ERROR: Unsupported package manager"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "[1/5] Updating package cache..."
|
||||
$UPDATE_CMD
|
||||
|
||||
echo ""
|
||||
echo "[2/5] Installing iperf3..."
|
||||
$INSTALL_CMD iperf3
|
||||
|
||||
echo ""
|
||||
echo "[3/5] Installing netperf..."
|
||||
if [ "$PKG_MGR" = "apt" ]; then
|
||||
$INSTALL_CMD netperf || {
|
||||
echo "netperf not in repos, building from source..."
|
||||
$INSTALL_CMD build-essential autoconf automake
|
||||
cd /tmp
|
||||
git clone https://github.com/HewlettPackard/netperf.git
|
||||
cd netperf
|
||||
./autogen.sh
|
||||
./configure
|
||||
make
|
||||
sudo make install
|
||||
cd -
|
||||
}
|
||||
else
|
||||
$INSTALL_CMD netperf || {
|
||||
echo "netperf not in repos, building from source..."
|
||||
$INSTALL_CMD gcc make autoconf automake
|
||||
cd /tmp
|
||||
git clone https://github.com/HewlettPackard/netperf.git
|
||||
cd netperf
|
||||
./autogen.sh
|
||||
./configure
|
||||
make
|
||||
sudo make install
|
||||
cd -
|
||||
}
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "[4/5] Installing sockperf..."
|
||||
if [ "$PKG_MGR" = "apt" ]; then
|
||||
$INSTALL_CMD sockperf 2>/dev/null || {
|
||||
echo "sockperf not in repos, building from source..."
|
||||
$INSTALL_CMD build-essential autoconf automake libtool
|
||||
cd /tmp
|
||||
git clone https://github.com/Mellanox/sockperf.git
|
||||
cd sockperf
|
||||
./autogen.sh
|
||||
./configure
|
||||
make
|
||||
sudo make install
|
||||
cd -
|
||||
}
|
||||
else
|
||||
$INSTALL_CMD sockperf 2>/dev/null || {
|
||||
echo "sockperf not in repos, building from source..."
|
||||
$INSTALL_CMD gcc-c++ make autoconf automake libtool
|
||||
cd /tmp
|
||||
git clone https://github.com/Mellanox/sockperf.git
|
||||
cd sockperf
|
||||
./autogen.sh
|
||||
./configure
|
||||
make
|
||||
sudo make install
|
||||
cd -
|
||||
}
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "[5/5] Installing additional utilities..."
|
||||
$INSTALL_CMD jq bc ethtool 2>/dev/null || true
|
||||
|
||||
echo ""
|
||||
echo "=== Verifying Installation ==="
|
||||
echo ""
|
||||
|
||||
check_tool() {
|
||||
if command -v "$1" &> /dev/null; then
|
||||
echo "✓ $1: $(command -v $1)"
|
||||
else
|
||||
echo "✗ $1: NOT FOUND"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
FAILED=0
|
||||
check_tool iperf3 || FAILED=1
|
||||
check_tool netperf || FAILED=1
|
||||
check_tool netserver || FAILED=1
|
||||
check_tool sockperf || FAILED=1
|
||||
check_tool jq || echo " (jq optional, JSON parsing may fail)"
|
||||
check_tool bc || echo " (bc optional, calculations may fail)"
|
||||
|
||||
echo ""
|
||||
if [ $FAILED -eq 0 ]; then
|
||||
echo "=== Setup Complete ==="
|
||||
echo ""
|
||||
echo "To start servers (run on server VM):"
|
||||
echo " iperf3 -s -D"
|
||||
echo " sockperf sr --daemonize"
|
||||
echo " netserver"
|
||||
else
|
||||
echo "=== Setup Incomplete ==="
|
||||
echo "Some tools failed to install. Check errors above."
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user