psping.jpg
本文主要介绍微软的测试工具Psping,
该工具功能主要包括:ICMP Ping、TCP Ping、延迟测试、带宽测试

需要说明一种应用场景:由于Windows Azure数据中心禁ICMP,使用Psping的TCP Ping的功能来测试联通性或者故障排查就非常有用了。

工具下载地址: http://technet.microsoft.com/en-us/sysinternals/jj729731

下载完PSTools.zip包之后,放到任意本地磁盘内,解压;

使用CMD命令行工具进入PSTools所在的文件夹路径,单独输入psping,可见psping四个主要功能的帮助命令,四个功能分别是ICMP Ping、TCP Ping、延迟测试、带宽测试。

【Part.1】ICMP ping功能

输入psping -? i获取ICMP ping相关参数
psping.jpg

psping -4 -n 10 -w 2 -h 180.76.76.76

psping 1.jpg

  • -4 代表强制使用IPv4联机
  • -n 代表正式ping包的个数,或者定义使用秒s作为单位
  • -w 代表热身ping包的个数,即正式测试前先进行多少次热身测试连接
  • -h 代表最小与最大延迟毫秒数

另外几个参数解释如下:

  • -i 代表间隔秒数,快ping则设置为0
  • -l 代表ping包大小,默认单位是byte。使用 k为单位代表kilobytes(KB),使用m为单位代表megabytes(MB)
  • -q 代表ping过程中不一个个输出值
  • -t 代表长ping不停
  • -6 代表强制使用IPv6联机
psping -i 0 -4 -n 10 -w 2 -h 10 -q 180.76.76.76
由于设置了-i 0这个参数,瞬间出结果
设置了-q则不再显示中间的输出过程,直接输出结果

-l和-t和-6不在此演示了。

【Part.2】TCP Ping功能

使用psping -? t获取帮助信息
psping2.jpg

psping -n 10 -w 2 -h 10 42.159.27.213:443

与ping功能相同的参数定义:

  • -n 代表正式ping包的个数,或者定义使用秒s作为单位
  • -w 代表热身ping包的个数,即正式测试前先进行多少次热身测试连接
  • -h 代表最小与最大延迟毫秒数
  • -i 代表间隔秒数,快ping则设置为0
  • -l 代表ping包大小,默认单位是byte。使用 k为单位代表kilobytes(KB),使用m为单位代表megabytes(MB)
  • -q 代表ping过程中不一个个输出值
  • -t 代表长ping不停
  • -4 代表强制使用IPv4联机
  • -6 代表强制使用IPv6联机

【Part.3】延迟测试

使用psping -? l获取延迟测试时的帮助信息。

我使用Azure VM搭建了网站部署在8081端口,42.159.27.213:8081

psping -l 1500 -n 300 -h 10 42.159.27.213:8081
  • -l 1500代表我发送的数据包大小为每个1500 Bytes,TCP联机在Layer 2 Ethernet中的MTU (Maximum Transmission Unit)通常以1500 Bytes为一个单位
  • -n 300代表放松300个封包
  • 那么300*1500Bytes=450000Bytes,绝大多数在5ms内响应

【Part.4】带宽测试

psping -? b

psping -b -l 1500 -n 15000 42.159.27.213:8081
  • -b代表将进行带宽测试
  • -l 1500代表使用大小1500Bytes的数据包
  • -n 15000代表使用15000个数据包
输出结果显示我测试我的PC与Azure VM之间带宽为470KB/s,其实是因为我的工位的PC被公司IT限速为500KB/s了,所以压到了我PC带宽的极限。