Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
By Mark Russinovich
Published: March 30, 2023
 Download PsTools (5 MB)
 Download PsTools (5 MB)
Introduction
PsPing implements Ping functionality, TCP ping, latency and bandwidth measurement. Use the following command-line options to show the usage for each test type:
Installation
Copy PsPing onto your executable path. Typing "psping" displays its usage syntax.
Using PsPing
PsPing implements Ping functionality, TCP ping, latency and bandwidth measurement. Use the following command-line options to show the usage for each test type:
Usage:
psping -? [i|t|l|b\]
| Parameter | Description | 
|---|---|
| -? I | Usage for ICMP ping. | 
| -? T | Usage for TCP ping. | 
| -? L | Usage for latency test. | 
| -? B | Usage for bandwidth test. | 
ICMP ping usage:
psping [[-6]|[-4]] [-h [buckets | <val1>,<val2>,...]] [-i <interval>] [-l <requestsize>[k|m] [-q] [-t|-n <count>] [-w <count>] <destination>
| Parameter | Description | 
|---|---|
| -h | Print histogram (default bucket count is 20). | 
| If you specify a single argument, it's interpreted as a bucket count and the histogram will contain that number of buckets covering the entire time range of values. Specify a comma-separated list of times to create a custom histogram (e.g. "0.01,0.05,1,5,10"). | |
| -i | Interval in seconds. Specify 0 for fast ping. | 
| -l | Request size. Append 'k' for kilobytes and 'm' for megabytes. | 
| -n | Number of pings or append 's' to specify seconds e.g. '10s'. | 
| -q | Don't output during pings. | 
| -t | Ping until stopped with Ctrl+C and type Ctrl+Break for statistics. | 
| -w | Warmup with the specified number of iterations (default is 1). | 
| -4 | Force using IPv4. | 
| -6 | Force using IPv6. | 
For high-speed ping tests use -q and -i 0.
TCP ping usage:
psping [[-6]|[-4]] [-h [buckets | <val1>,<val2>,...]] [-i <interval>] [-l <requestsize>[k|m] [-q] [-t|-n <count>] [-w <count>] <destination:destport>
| Parameter | Description | 
|---|---|
| -h | Print histogram (default bucket count is 20). | 
| If you specify a single argument, it's interpreted as a bucket count and the histogram will contain that number of buckets covering the entire time range of values. Specify a comma-separated list of times to create a custom histogram (e.g. "0.01,0.05,1,5,10"). | |
| -i | Interval in seconds. Specify 0 for fast ping. | 
| -l | Request size. Append 'k' for kilobytes and 'm' for megabytes. | 
| -n | Number of pings or append 's' to specify seconds e.g. '10s'. | 
| -q | Don't output during pings. | 
| -t | Ping until stopped with Ctrl+C and type Ctrl+Break for statistics. | 
| -w | Warmup with the specified number of iterations (default is 1). | 
| -4 | Force using IPv4. | 
| -6 | Force using IPv6. | 
For high-speed ping tests use -q and -i 0.
TCP and UDP latency usage:
server:
psping [[-6]|[-4]] [-f] <-s source:sourceport>
client:
psping [[-6]|[-4]] [-f] [-u] [-h [buckets | <val1>,<val2>,...]] [-r] <-l requestsize>[k|m]] <-n count> [-w <count>] <destination:destport>
| Parameter | Description | 
|---|---|
| -f | Open source firewall port during the run. | 
| -u | UDP (default is TCP). | 
| -h | Print histogram (default bucket count is 20). | 
| If you specify a single argument, it's interpreted as a bucket count and the histogram will contain that number of buckets covering the entire time range of values. Specify a comma-separated list of times to create a custom histogram (e.g. "0.01,0.05,1,5,10"). | |
| -l | Request size. Append 'k' for kilobytes and 'm' for megabytes. | 
| -n | Number of sends/receives. Append 's' to specify seconds e.g. '10s' | 
| -r | Receive from the server instead of sending. | 
| -w | Warmup with the specified number of iterations (default is 5). | 
| -4 | Force using IPv4. | 
| -6 | Force using IPv6. | 
| -s | Server listening address and port. | 
The server can serve both latency and bandwidth tests and remains active until you terminate it with Control-C.
TCP and UDP bandwidth usage:
server:
psping [[-6]|[-4]] [-f] <-s source:sourceport>
client:
psping [-b] [[-6]|[-4]] [-f] [-u] [-h [buckets | <val1>,<val2>,...]] [-r] <-l requestsize>[k|m]] <-n count> [-i <outstanding>] [-w <count>] <destination:destport>
| Parameter | Description | 
|---|---|
| -f | Open source firewall port during the run. | 
| -u | UDP (default is TCP). | 
| -b | Bandwidth test. | 
| -h | Print histogram (default bucket count is 20). | 
| If you specify a single argument, it's interpreted as a bucket count and the histogram will contain that number of buckets covering the entire time range of values. Specify a comma-separated list of times to create a custom histogram (e.g. "0.01,0.05,1,5,10"). | |
| -i | Number of outstanding I/Os (default is min of 16 and 2x CPU cores). | 
| -l | Request size. Append 'k' for kilobytes and 'm' for megabytes. | 
| -n | Number of sends/receives. Append 's' to specify seconds e.g. '10s' | 
| -r | Receive from the server instead of sending. | 
| -w | Warmup for the specified iterations (default is 2x CPU cores). | 
| -4 | Force using IPv4. | 
| -6 | Force using IPv6. | 
| -s | Server listening address and port. | 
The server can serve both latency and bandwidth tests and remains active until you terminate it with Control-C.
Examples
This command executes an ICMP ping test for 10 iterations with 3 warmup iterations:
psping -n 10 -w 3 marklap
To execute a TCP connect test, specify the port number. The following command executes connect attempts against the target as quickly as possible, only printing a summary when finished with the 100 iterations and 1 warmup iteration:
psping -n 100 -i 0 -q marklap:80
To configure a server for latency and bandwidth tests, simply specify
the -s option and the source address and port the server will bind to:
psping -s 192.168.2.2:5000
A buffer size is required to perform a TCP latency test. This example measures the round trip latency of sending an 8KB packet to the target server, printing a histogram with 100 buckets when completed:
psping -l 8k -n 10000 -h 100 192.168.2.2:5000
This command tests bandwidth to a PsPing server listening at the target
IP address for 10 seconds and produces a histogram with 100 buckets.
Note that the test must run for at least one second after warmup for a
histogram to generate. Simply add -u to have PsPing perform a UDP
bandwidth test.
psping -b -l 8k -n 10000 -h 100 192.168.2.2:5000
 Download PsTools (5 MB)
 Download PsTools (5 MB)
PsTools
PsPing is part of a growing kit of Sysinternals command-line tools that aid in the administration of local and remote systems named PsTools.
Runs on:
- Client: Windows 8.1 and higher.
- Server: Windows Server 2012 and higher.