有什么技术来testing服务器的连接速度(在我的情况下,虚拟Ubuntu服务器@ Slicehost)? 一个class轮bash命令的奖励积分。
用于检查可用带宽的更好的命令行工具之一是iperf。 然而,你需要一个已知的快速连接上的另一个盒子来运行testing。 我不知道任何公共iperf服务器。
在一台计算机上运行netserver在另一台计算机上运行netperf -h other.server.com -l 30 ; 有关详细信息,源代码和Windows二进制文件(大多数* nix端口/软件包系统中都有netperf),请参见官方Netperf站点。 注意:结果将受到两者之间最慢连接的限制,端口12865必须在服务器端打开。
看看这个问题的一个技术,使用dd over netcat ,并注意到发现磁盘I / O是在涉及特定硬件的本地networking上的限制因素。 通过互联网和更快的硬件,您的里程可能会有所不同。 通过使用/dev/zero作为源和/dev/null作为目的地,磁盘I / O因子将被删除,如注释中所述。
目标系统:
nc -l -p 9000 | pv | dd of = / dev / null源系统:
dd if = / dev / zero | pv | nc 9000 -q 10
我个人偏好是“wget http://cdimage.debian.org/debian-cd/5.0.7/amd64/iso-cd/debian-507-amd64-CD-1.iso ”。 注意它饱和你的连接!
这是我自己的一个内部来获取我的服务器上的基本HTTP 1/1请求的时间。 通过服务器名称更改www.foo.com,通过HTTP服务器IP更改192.168.1.15(使用IP,与真实名称一样,您将添加DNSsearch时间)。
time printf 'GET / HTTP/1.1\nHost:www.foo.com\n\n' |nc -w 10 -q 10 192.168.1.15 80 1>/dev/null
我通常在一个非常简单的默认的虚拟主机上使用一个静态的HTML页面来获得基本的响应时间(没有CGI或PHP的东西,甚至没有会议,MOD_rewrite或授权pipe理。
对于实时跟踪,我使用Nagios插件,apache状态结果(对bash一个linners以及wityh q = auto非常有用),以及有时autobench(基于httperf)。
我认为最简单的就是使用iftop。
在服务器@ slicehost上运行
sudo iftop
然后开始在另一个SSH窗口中用wget下载一个大文件。
从iftop手册页:
显示器的主要部分为每对主机列出在之前的2,10和40秒间隔内发送和接收数据的速率。 数据stream向由箭头指示,<=和=>。 例如,
foo.example.com => bar.example.com 1Kb 500b 100b <= 2Mb 2Mb 2Mb
等等…