perfSONAR Tools & Scripts¶
This directory contains helper scripts for perfSONAR deployment, configuration, and tuning.
Available tools¶
| Tool | Version | Purpose | Documentation |
|---|---|---|---|
| fasterdata-tuning.sh | v1.3.1 | Host & NIC tuning (ESnet Fasterdata) | Fasterdata Tuning Guide |
| perfSONAR-pbr-nm.sh | — | Multi-NIC policy-based routing | Multiple NIC Guidance |
| perfSONAR-update-lsregistration.sh | — | LS registration management | LS Registration Tools |
| perfSONAR-auto-enroll-psconfig.sh | — | Automatic pSConfig enrollment | Installation Guides |
| install_tools_scripts.sh | — | Bulk installer for all scripts | Installation |
| install-systemd-service.sh | — | Container auto-start on boot | Container Management |
Latest Updates: v1.2.0 (Dec 2025) adds save/restore state management to fasterdata-tuning.sh
Quick Start¶
Download All Scripts¶
Install all scripts to a target directory (default: /opt/perfsonar-tp/tools_scripts):
curl -fsSL https://raw.githubusercontent.com/osg-htc/networking/master/docs/perfsonar/tools_scripts/install_tools_scripts.sh | sudo bash -s -- /opt/perfsonar-tp
Download Individual Scripts¶
# Example: fasterdata-tuning.sh
sudo curl -fsSL -o /usr/local/bin/fasterdata-tuning.sh \
https://raw.githubusercontent.com/osg-htc/networking/master/docs/perfsonar/tools_scripts/fasterdata-tuning.sh
sudo chmod +x /usr/local/bin/fasterdata-tuning.sh
Host Tuning¶
Fasterdata Tuning Script¶
Audit and apply ESnet Fasterdata-inspired host and NIC tuning for EL9 systems.
NEW in v1.2.0: Save/restore state functionality for testing different tuning configurations.
Quick Usage:
# Audit mode (no changes)
/usr/local/bin/fasterdata-tuning.sh --mode audit --target measurement
# Apply tuning (requires root)
sudo /usr/local/bin/fasterdata-tuning.sh --mode apply --target dtn
# Save current state before testing
sudo /usr/local/bin/fasterdata-tuning.sh --save-state --label baseline
# Restore saved state
sudo /usr/local/bin/fasterdata-tuning.sh --restore-state baseline --yes
# List all saved states
/usr/local/bin/fasterdata-tuning.sh --list-states
State Management: Save and restore system configurations for before/after performance testing. Captures sysctl parameters, interface settings, configuration files, CPU governor, and tuned profile. See Fasterdata Tuning Guide for complete workflow examples.
Full Documentation: Fasterdata Tuning Guide
Multi-NIC Configuration¶
Policy-Based Routing (PBR)¶
Configure static IPv4/IPv6 addressing and per-NIC source-based routing via NetworkManager.
Script: perfSONAR-pbr-nm.sh
Config file: /etc/perfSONAR-multi-nic-config.conf
Log file: /var/log/perfSONAR-multi-nic-config.log
Quick Usage:
# Generate config automatically
/opt/perfsonar-tp/tools_scripts/perfSONAR-pbr-nm.sh --generate-config-auto
# Preview changes (dry-run)
/opt/perfsonar-tp/tools_scripts/perfSONAR-pbr-nm.sh --dry-run --debug
# Apply configuration
sudo /opt/perfsonar-tp/tools_scripts/perfSONAR-pbr-nm.sh --yes
Full Documentation: Multiple NIC Guidance
LS Registration¶
Lookup Service Registration Tools¶
Manage perfSONAR Lookup Service registration configuration.
Script: perfSONAR-update-lsregistration.sh
Quick Usage:
# For RPM Toolkit (local mode)
/opt/perfsonar-toolkit/tools_scripts/perfSONAR-update-lsregistration.sh update --local \
--site-name "My Site" --admin-email [email protected]
# For container-based testpoint
/opt/perfsonar-tp/tools_scripts/perfSONAR-update-lsregistration.sh update \
--container perfsonar-testpoint \
--site-name "My Site" --admin-email [email protected]
Full Documentation: LS Registration Tools
Auto-Enrollment¶
pSConfig Auto-Enrollment¶
Automatically enroll perfSONAR instances in OSG/WLCG pSConfig meshes by deriving FQDNs from configured IPs.
Script: perfSONAR-auto-enroll-psconfig.sh
Quick Usage:
# For RPM Toolkit (local mode)
/opt/perfsonar-toolkit/tools_scripts/perfSONAR-auto-enroll-psconfig.sh --local -v
# For container-based testpoint
/opt/perfsonar-tp/tools_scripts/perfSONAR-auto-enroll-psconfig.sh -v
Full Documentation: See Testpoint Installation or Toolkit Installation
Installation¶
Bulk Script Installer¶
Install all helper scripts to a target directory.
Script: install_tools_scripts.sh
Usage:
# Preview (dry-run)
bash /opt/perfsonar-tp/tools_scripts/install_tools_scripts.sh --dry-run
# Install to default location (/opt/perfsonar-tp/tools_scripts)
bash /opt/perfsonar-tp/tools_scripts/install_tools_scripts.sh
# Install to custom location
bash /opt/perfsonar-tp/tools_scripts/install_tools_scripts.sh /custom/path
Options:
- --dry-run: Preview changes without modifying files
- --skip-testpoint: Skip cloning testpoint repo if already present
Container Management¶
Systemd Service for Container Auto-Start¶
Install and enable a systemd service for automatic container restart on boot.
Script: install-systemd-service.sh
Usage:
# Install with default path (/opt/perfsonar-tp)
sudo /opt/perfsonar-tp/tools_scripts/install-systemd-service.sh
# Install with custom path
sudo /opt/perfsonar-tp/tools_scripts/install-systemd-service.sh /custom/path
Service Management:
# Start/stop/restart containers
systemctl start perfsonar-testpoint
systemctl stop perfsonar-testpoint
systemctl restart perfsonar-testpoint
# View status and logs
systemctl status perfsonar-testpoint
journalctl -u perfsonar-testpoint -f
Integration:
After deploying containers with podman-compose up -d, install the service to ensure containers start automatically on boot.
Dependencies¶
Essential packages (install before using these scripts):
# RHEL/AlmaLinux/Rocky Linux
dnf install -y bash coreutils iproute NetworkManager rsync curl openssl \
nftables podman podman-compose fail2ban policycoreutils python3
# Debian/Ubuntu
apt-get install -y bash coreutils iproute2 network-manager rsync curl openssl \
nftables podman podman-compose docker.io fail2ban policycoreutils python3
Support & Additional Resources¶
- Installation Guides: Quick Deploy Landing
- Troubleshooting: Troubleshooter Guide
- Network Issues: Network Troubleshooting Guide
- perfSONAR FAQ: FAQ
- Community Support: perfSONAR User Mailing List
Contact¶
Script Author: Shawn McKee — [email protected]
OSG Networking Team: [email protected]