$ curl -o /dev/null -s -w %{time_connect}:%{time_starttransfer}:%{time_total} http://www.canada.com 0.081:0.272:0.779 |
清单 1 给出对一个流行的新闻站点执行 curl
命令的情况。输出通常是 HTML 代码,通过 -o
参数发送到 /dev/null
。-s
参数去掉所有状态信息。-w
参数让 curl
写出表 1 列出的计时器的状态信息:
表 1. curl 使用的计时器
计时器 | 描述 |
---|---|
time_connect | 建立到服务器的 TCP 连接所用的时间 |
time_starttransfer | 在发出请求之后,Web 服务器返回数据的第一个字节所用的时间 |
time_total | 完成请求所用的时间 |
这些计时器都相对于事务的起始时间,甚至要先于 Domain Name Service(DNS)查询。因此,在发出请求之后,Web 服务器处理请求并开始发回数据所用的时间是 0.272 – 0.081 = 0.191 秒。客户机从服务器下载数据所用的时间是 0.779 – 0.272 = 0.507 秒。
通过观察 curl
数据及其随时间变化的趋势,可以很好地了解站点对用户的响应性。
当然,Web 站点不仅仅由页面组成。它还有图像、JavaScript 代码、CSS 和 cookie 要处理。curl
很适合了解单一元素的响应时间,但是有时候需要了解整个页面的装载速度。
这里介绍一个使用curl监控页面可用性的方法。
可以使用下面的命令,来采集页面的状态码。如果这条命令返回结果为200,说明服务正常。如果返回的是其他的页面,说明异常。
curl -o /dev/null -s -w %{http_code} http://zys.8800.org/
-o 参数,是把下载的所有内容都重定向到/dev/null,-s命令,是屏蔽了curl本身的输出,而-w参数,是根据我们自己的需要,自定义了curl的输出格式。
使用这条命令,再配合邮件和短信,就可以实现对页面的可用性监控。将这个程序部署在全国各地的机器上,就可以对cdn网络进行可用性监控。