网站搜索

如何在 Linux 终端中测试网站加载速度


网站响应时间会对用户体验产生很大影响,如果您是一名网络开发人员,或者只是一名专门负责将各个部分组织在一起的服务器管理员,那么您必须让用户感觉不到这一点访问您的网站时感到沮丧 – 因此确实存在“对速度的需求”。

另请阅读: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 – 在标准输出上打印信息。
  • -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

在上面的格式中,新的时间变量是:

  • time_appconnect – 从开始到完成与远程主机的 SSL 连接/握手所花费的时间(以秒为单位)。
  • time_redirect – 最终交易开始之前所有重定向步骤(包括名称查找、连接、预传输和传输)所花费的时间(以秒为单位);它计算多个重定向的完整执行时间。

需要注意的重要事项。

  • 您会注意到,当您运行不同的测试时,响应时间值不断变化(由于多种因素),因此建议收集多个值并获得平均速度。
  • 其次,从上面命令的结果可以看出,通过HTTP访问网站比通过HTTPS访问网站要快得多。

有关详细信息,请参阅 cURL 手册页:

man curl

最后但并非最不重要的一点是,如果您的结果不令人满意,那么您需要在服务器或代码中进行一些调整。您可以考虑使用以下教程,其中解释了使网站在 Linux 中加载速度更快的程序和技巧:

  1. 在 Debian 和 Ubuntu 上安装带有 Ngx_Pagespeed(速度优化)的 Nginx
  2. 在 CentOS 7 上使用 Ngx_Pagespeed 提高 Nginx 性能
  3. 了解如何使用 Nginx 和 Gzip 模块加速网站
  4. 如何使用 TCP BBR 提高 Linux 服务器的互联网速度

就这样!现在您知道如何从命令行测试网站响应时间。您可以通过下面的反馈表提出问题。