pScheduler
pScheduler is the perfSONAR tool to run various network test commands. The main pScheduler control port is 443. Make sure this port is not blocked by any firewalls.
GENERAL COMMAND FORMAT:
pscheduler command [ switches/args ]
TASK COMMAND FORMAT:
pscheduler task [ task-switches ] test [ test-switches ]
task-switches - Options that affect scheduling (how often, how many times, etc.), output format (plain text, JSON, HTML) and what host leads the test (see below).
test - What kind of test the task will do.
test-switches - Options specific to the kind of test being done.
GETTING HELP:
pscheduler --help
pscheduler task --help
pscheduler task throughput --help
pscheduler plugins tests # list all tests pscheduler can run
pscheduler plugins tools # list all tools pscheduler can run
Some sample useful commands include the following.
Throughput Testing
Run a basic iperf3 throughput test:
pscheduler task throughput --dest receive_host
Run a iperf2 500Mbps UDP test throughput test:
pscheduler task --tool iperf2 throughput --dest receive_host --interval 2 -u --bandwidth 500M
Force IPv4 instead of default
pscheduler task throughput --ip-version 4 --source send_host --dest receive_host<
3rd Party test, specify Congestion Control
pscheduler task throughput --dest recvhost --source sendhost --congestion cubic
Latency/Loss Testing
Run ping to google.com
pscheduler task rtt --dest www.google.com
run a ping from host A to host B:
pscheduler task rtt --source send_host --dest receive_host
run owping from host A to host B, sending 1000 packets, spaced .01 seconds apart:
pscheduler task latency --dest receive host --packet-count 1000 --packet-interval .01
traceroute testing
run a tracetroute from host A to host B:
pscheduler task trace --source send_host --dest receive_host
run a tracepath from host A to host B, using a packet size of 8192 bytes. This will help find MTU issues.
pscheduler task trace --length 8192 --dest receive_host
Other useful pScheduler commands
measure the clock difference between your host and a remote host:
pscheduler task clock --dest hostname
measure the amount of time to do a DNS lookup:
pscheduler task dns --query www.es.net --record a
show the upcoming test schedule for this host:
pscheduler schedule --filter-test=throughput --host hostname
show the tests run in the past hour:
pscheduler schedule --filter-test=throughput -PT1H