Menu

pScheduler

November 5, 2024

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