想测网站带宽,不用买专业设备,IIS自带的最大连接数设置就能帮你摸个底。这个参数在IIS管理器里叫“最大并发连接数”,它决定了服务器同时能接多少个请求。你把它当成一个可调的水龙头,然后拿下载工具模拟一堆人同时下载同一个文件,观察服务器的出口流量变化,就能算出带宽上限。
先准备一个测试文件,比如10MB的zip包,放在网站根目录。大小要适中,太小了受网络延迟影响大,太大了测试时间长。一般10MB到100MB都行。然后打开IIS管理器,选中你的网站,右边操作栏点“高级设置”,在“连接限制”里找到“最大并发连接数”。默认是4294967295,相当于不限制。为了测试,你可以先把它改成10。注意这个设置是硬限制,超过的连接会被拒绝,所以测试时实际并发不要超过这个数。
接下来需要监控带宽。在服务器上打开任务管理器,切换到“性能”选项卡,看“以太网”的发送和接收。或者用性能监视器,添加计数器“Network Interface\Bytes Total/sec”,选择你的网卡。这个数值就是当前网卡的总吞吐量,单位是字节/秒。除以1024就是KB/s,再除以1024就是MB/s。乘以8就是bps。
然后开始测试。用Apache JMeter或者简单的ab命令。Windows下可以用ab的Windows版,或者用PowerShell写个循环。比如用ab -n 100 -c 10 http://你的域名/test.zip,意思是总共请求100次,并发10个。但ab默认不保存文件,只是发请求。要测下载带宽,最好用能实际下载文件的工具。可以用wget配合xargs,或者用JMeter的HTTP请求,勾选“保存响应到文件”。JMeter更灵活。
假设我们用JMeter,设置线程数10,循环次数1,每个线程下载同一个10MB文件。启动测试,同时观察性能监视器里的Bytes Total/sec。等测试结束,记录总下载数据量(10个文件就是100MB)和总耗时。总带宽 = 总数据量 / 总耗时。比如100MB用了10秒,那就是10MB/s,相当于80Mbps。然后改变IIS最大连接数为20,JMeter线程数也改成
