Raspberry PI 3和4 Web服务器的页面加载时间比较

2020-10-29 20:25:00

近两年来,我一直在住宅互联网连接的Raspberry Pi 3B网络服务器上运行一些几乎静态的小型网站。我这样做在一定程度上是为了证明,即使是预算紧张的个人也可以享受在家中运行网络服务器带来的言论自由好处。几个月前,当Raspberry PI 4向公众发布时,我想知道升级到Raspberry PI 4是否会显著提高我的页面加载速度。根据粗略的计算,我猜测应该只会减少50到100毫秒(Ms)的页面加载时间。因为我不认为这是升级的充分理由,所以我搁置了对实际数据的任何分析,直到我有另一个理由购买Raspberry Pi 4。奇怪的是,我在互联网上没有找到Raspberry Pi 3和Raspberry PI 4 Web服务器的任何性能比较。实际上,几乎没有发布任何Raspberry PI Web服务器的基准测试。

缺乏关于Raspberry Pi作为Web服务器的性能的信息让我感到困惑,因为我发现Raspberry Pi 3对于静态或接近静态的网站来说是一个很好的服务器。事实上,我发现它能够处理相当大的交通量。我见过它动态压缩一个包含8896字节超文本标记语言(压缩前)、1666字节的css(压缩前)、一个17529字节的图像文件(未压缩)和一个小的php访问量统计脚本的小网页,并以每秒2.7次的速度动态压缩和提供服务,其中907个字的文本在阅读器浏览器中可见,1666字节的css(压缩前)和一个小的php访问量统计脚本。每秒提供2.7页服务相当于每月提供700万页服务!即使是一个非常流行的静态个人博客,只要博主努力将他的网页大小降到最小,这就足以处理好访问量了。我还应该提一下,我的Raspberry Pi 3网络服务器运行的是Lighttpd网络服务器软件,它从未因为流量过大而导致我的网站崩溃。因此,我可以强烈推荐Raspberry Pi 3作为Web服务器,几乎所有正在考虑在家中自托管静态网站的人都可以使用它。

本周,我终于买了一台Raspberry PI 4B,并决定将其作为Web服务器的性能与我目前的Raspberry PI 3B Web服务器进行比较。我使用Pingdom测量页面加载时间,它将页面加载时间分解为以下时间间隔。

我选择比较其中一个网站上最小和最大页面的两个Web服务器的性能:

最小的网页:最大的网页:两个页面都会加载一个318字节的图标,为简洁起见,下面的表格中没有包含该图标。

虽然我最大的网页包含访问者在他的网络浏览器中看到的大约13000个单词,但我的超文本标记语言文件的大小比大多数其他网站都要小。我的HTML文件相对较小,因为我不使用Wordpress或其他网站创建软件。取而代之的是,我手写我自己的HTML。除了拥有较小的网页,我还避免被任何公司的网站创建软件所束缚,因为我认为从长远来看,这是我最感兴趣的。

我选择查看单个页面的加载时间,而不考虑同时访问的连接。除了少数几个流量高峰是由于偶尔的热门文章,大多数到我的网站的连接都不是同时进行的。因此,Pingdom的单个页面加载时间代表了我网站的大多数访问者实际看到的内容。即使在我目前为止在我的网站上看到的大流量高峰期间,测试也显示页面加载速度并没有明显放缓。这可能是因为我的服务器受限于Internet连接带宽,而不是CPU能力。换句话说,连接带宽不够高,不足以让足够的流量通过树莓PI3';的CPU。

下面是Pindgom给出的网页加载次数的结果。对于Raspberry PI 3和Raspberry PI 4网络服务器都示出了最小网页的三次随机运行和最大网页的两次随机运行。一个非常方便的地方是,Raspberry Pi 3和Raspberry Pi 4都可以在同一张微型USB闪存卡上运行,该闪存卡包含Raspbian操作系统、Lighttpd网络服务器软件和我网站的代码。这简化了页面加载速度的比较。

让我们考虑一下以上表格中数据的含义。将DNS、SSL、CONNECT、SEND、WAIT、RECEIVE和BLOCKED的时间相加得到的数字大于相应的页面加载时间。因此,目前还不清楚Pingdom在什么时候认为一个页面已经完全加载。无论如何,可以对这两个Web服务器的数字进行比较,细微的差异很明显。

另一件要考虑的事情是Lighttpd Web服务器在高流量期间的效率提高。我的网站上最小页面的加载时间是393ms(根据表中的时间总和,完全加载的时间超过464ms)。这相当于每秒加载2.54个页面。对于包含明显更多数据的网页,已经观察到每秒超过2.7页的事实表明在高流量期间效率提高。根据我在高流量时的观察,似乎当经历高流量时,Lighttpd软件将压缩的网页文件保存在RAM中,同时将它们发送给多个网站访问者。这减轻了它从microSD卡读取文件并在每次将文件发送给新访问者时对其进行压缩所带来的负担。

考虑到样本数量很少,应该会有很大的抽样误差。然而,我的目标是获得一个大致的预期,而不是准确的统计数据。

有些数字在所有运行和两个服务器上都相当一致,有些则随网页的大小而不同。最值得注意的细节是,对于所有五次运行和两个Web服务器,SSL、连接和发送的时间相对一致。尽管Raspberry PI 4的SSL和CONNECT较小,但它们始终较小。等待时间差别更大。当然,接收时间是必须上传的数据量和互联网连接带宽的函数。

请注意,我的服务器的互联网连接的上传带宽相对较低。据我的ISP说,速率在0.5Mbit/s到1Mbit/s之间,这是美国许多住宅客户的归类。虽然这是不幸的,我的Raspberry Pi 3服务器已经足够同时服务于一些小网站,偶尔会出现大的流量峰值,因为我已经严格地最小化了每个网页的大小。最小化我的所有网页产生了紧凑的网页,访问者可以在他的浏览器中看到相当多的文本。我的网页平均包含大约2000个单词,这些单词在浏览器中是可见的。我的HTML页面的平均大小约为16.5KB。

Pingdom提供了在地球上测量页面加载时间的位置选择。我选择了一个距离服务器不到一千英里的位置。虽然我没有证实这一点,但我相信Raspberry PI 3和4服务器之间的页面加载时间差异应该不会受到用户与服务器的距离的影响。原因是两台服务器由于距离导致的数据传输延迟是相同的。

下面是Raspberry PI 4服务器五次运行的平均时间与Raspberry PI 3服务器五次运行的平均时间之间的差异。我已经展示了三个平均等待时间差异:一个是HTML,一个是CSS,还有一个是图像文件。HTML和CSS的平均值超过三次,图像文件的平均值超过两次。

尽管我没有努力进行严格的分析,但基于上述数字,我猜测,对于一个HTML文件大小最小化、带宽受限的网站,用户浏览器完全加载Raspberry Pi 4服务器提供的网页的平均时间,应该比完全加载Raspberry PI 3服务器提供的相同页面的平均时间少90至130毫秒。较大的网页会导致较大的等待时间减少,从而带来较大的页面加载时间改进。因此,对于特定网站,页面加载时间的改善是否显著可能取决于所服务的网页的大小。对于我的网站来说,需要大约450毫秒到大约1500毫秒的时间才能完全加载一个页面,树莓PI 3和树莓PI 4之间的差异是显著的,但不是很大。我意识到这些都是模糊不清的术语。我的意思是,我仍未决定是否将我的伺服器升级为Raspberry Pi 4,如果有读者想争论我的结果是否准确,或如何理解我的结果,我请他自行分析,然后将结果公布。我相信,许多对在家中运行Web服务器感兴趣的人都会从更多关于Raspberry PI服务器性能的可用信息中受益。

如果你觉得这篇文章很值得,请把它分享到你最喜欢的社交媒体上。您将在页面顶部找到链接。