网站响应时间可能会对用户体验产生很大的影响,如果您是Web开发人员,或者只是负责组织这些组件的服务器管理员,则必须使用户感觉不到这一点访问您的网站时感到沮丧 - 所以确实需要“速度 ”。
另请参阅 : httpstat - 一个Curl统计工具来检查网站的性能
本指南将向您展示如何从Linux命令行测试网站响应时间。 在这里,我们将展示如何检查在几秒钟内的时间,它需要:
- 执行名称解析。
- 用于TCP连接到服务器。
- 为文件传输开始。
- 第一个字节被传输。
- 为完整的操作。
另外,对于启用了HTTPS的站点,我们还将看到如何测试时间,以秒为单位:重定向,SSL连接/握手到服务器完成。 听起来不错,好吧,让我们开始吧。
cURL是一个强大的命令行工具,可以使用诸如FILE,FTP,FTPS,HTTP,HTTPS等协议从服务器传输数据。 在大多数情况下,它用作命令行下载器 ,或用于检查HTTP标头。 但是,在这里,我们将描述其中一个不太为人所知的功能。
cURL有一个有用的选项: -w
用于在完成操作后在stdout上打印信息。 它有一些变量,我们可以用来测试一个网站上面列出的不同响应时间。
我们将使用一些与时间相关的变量,这些变量可以以给定的格式作为字符串或文件传递。
所以打开你的终端并运行下面的命令:
$ curl -s -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null http://www.google.com
测试网站加载速度
上述格式的变量是:
- time_namelookup - 以秒为单位的时间,从开始到名称解析完成。
- time_connect - 从开始到TCP连接到远程主机(或代理)完成所花费的时间,以秒为单位。
- time_pretransfer - 时间,以秒为单位,从开始到文件传输即将开始。
- time_starttransfer - 以秒为单位的时间,从开始到第一个字节即将被转移。
- time_total - 完整操作持续的总时间(以毫秒为单位)(以毫秒为单位)。
如果格式太长,可以将其写入一个文件中,并使用下面的语法来读取它:
$ curl -s -w "@format.txt" -o /dev/null http://www.google.com
在上面的命令中,标志:
-
-s
- 让curl静静地工作。 -
-w
- 打印stdout上的信息。 -
-o
- 用于重定向输出(这里我们通过将输出重定向到/ dev / null来丢弃输出)。
对于HTTPS站点,您可以运行下面的命令:
$ curl -s -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nAppCon Time:\t\t%{time_appconnect}\nRedirect Time:\t\t%{time_redirect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null https://www.google.com
测试HTTPS网站速度
在上面的格式中,新的时间变量是:
- time_appconnect - 以秒为单位,从开始直到到远程主机的SSL连接/握手完成。
- time_redirect - 时间,以秒为单位,包括名称查找,连接,预转换和传输在最终事务开始之前的所有重定向步骤。 它计算多个重定向的完整执行时间。
重要的一点需要注意。
- 您会注意到,当您运行不同的测试时,响应时间值会不断变化(由于多种因素),因此建议收集多个值并获取平均速度。
- 其次,从上面的命令的结果可以看出,通过HTTP访问网站比通过HTTPS快得多。
有关更多信息,请参见cURL手册页:
$ man curl
最后但并非最不重要,如果你的结果不令人满意,那么你有一些调整,以在您的服务器上或在代码。 您可以考虑使用以下教程来解释程序和技巧,以使Linux在Linux中加载速度更快:
- 在Debian和Ubuntu上用Ngx_Pagespeed(速度优化)安装Nginx
- 在CentOS 7上使用Ngx_Pagespeed加速Nginx性能
- 学习如何使用Nginx和Gzip模块加速网站
- 如何通过TCP BBR提升Linux服务器的互联网速度
就这样! 现在你知道如何从命令行测试网站响应时间。 您可以通过下面的反馈表来提问。