Raspberry Pi 2上的LAMP-ARM CPU + USB具备的功能

我将立即进行预订,目的不是要找到系统的最大功能,而是要找到现代微型计算机作为完善的Web服务器的基本性能,并帮助评估相对于共享主机的竞争力。因此,本文不会解决优化和研究最大允许负载的问题。而是在具有实际访问者的现有网站上进行实验。

介绍


也许,许多熟悉食用家庭的微型计算机(树莓,香蕉,橙子...)的人都在考虑扩大其使用范围。最初是为智能家居系统和机器人设计的,它们在保持尺寸的同时变得越来越快。低功耗和增强的处理器能力使其成为潜在的Web服务器。让我们选择一个适合的模型。

为什么使用Raspberry Pi 2 B型?


由于从托管的角度来看,此类系统的最薄弱之处是处理器,它的相对性能非常低(稍后会详细介绍),因此我们将尝试在预算选项下组织Web服务器,但事实证明,该服务器足够强大我们的任务是Raspberry Pi 2 B型。它具有4核处理器,该处理器可以在正常模式下运行,而无需在900 Mhz的温度下散热,并且能够将此频率从700更改为1200 Mhz。我们不会提高时钟频率,我们只是注意到,要进行“超频”,您将需要散热器和风扇。既然今天Raspberry Pi 2模型B拥有“同学”中生产率最高的处理器,我们就选择它进行测试。

有关平台的技术功能


中央处理器

我们有一个不寻常的处理器,RISC系列。简而言之,我们可以说这种处理器的指令集比“普通”的指令集要小得多,但是它可以非常快速地执行简单的命令。但是要执行复杂的指令,这种简单的命令就需要很多。因此,时钟周期更多。因此,如果对任何人来说,每个900 Mhz的4个内核对于Web服务器来说绰绰有余,那么您应该进行修正-Broadcom BCM2836四核Cortex A7用于我们的任务不会比旧的Pentium 300-400 Mhz快。没错,比Raspberry Pi上的单核模型高出6倍,比Banana Pi M2的双核同学高1.9倍(尽管由于SATA和千兆以太网的出现而广受宣传,但由于其处理器,它不适合用于Web服务器) )正是由于中央处理器的缓慢,我们观察到了微型计算机的创纪录低消耗。根据现有数据,Raspberry Pi的功耗为2到3瓦,峰值负载为4瓦,空闲时为1瓦。嗯,除了为存储介质供电外,整个系统平均需要2-3瓦(5V,0.4-0.6A),这在公司或家庭网络托管领域值得一战,这可以使其经济实惠。的观点。什么可以使其在经济上具有优势。什么可以使其在经济上具有优势。

记忆

使用的内存不是最快的,它是DDR2,但是有足够的内存-1GB。我必须说,对于运行Linux的普通Web服务器而言,这是一个很大的数目。

网络接口

一个100 MB的网络接口足以进行数据传输。我们不需要其他任何东西-信息存储子系统和处理器根本无法应付沉重的负担。

数据存储

我们转向一个非常有趣的观点-内置的读卡器仅允许系统从中引导(除非您重定向引导加载器...),在通常情况下,这将主载体的选择限制为micro SD卡。好消息是,今天它们已经可以大量使用并且可以快速工作。尽管已经存在缺点-我们不太可能希望保留网站文件,数据库,交换和登录网站,以避免运行缓慢和过早缩短运营商的寿命。为此,我们将在USB总线上放置另一种介质。这种方法不仅可以提高系统性能,而且还具有模块化的优势-轻松地用备用介质替换介质并备份整个映像。问题是我们到底想将什么用作外部介质-SSD磁盘,HDD或快速存储卡。在这里,每个人都可以自己决定,这在很大程度上取决于托管站点的性质。应当记住,Raspberry Pi 2使用USB 2.0标准,这限制了我们的文件子系统的数据传输速度。

在此示例中,作为外部设备,我们将考虑相对缓慢的记录选项-这是连接了Lexar Professional全格式SD卡的USB读卡器,通过该连接,您可以以仅约15Mb / s的速度记录数据。尽管(在一般情况下),超过100兆位用于读写的媒体速度对我们而言并不重要,因为与外界的通信受到此数字的限制。使用磁盘子系统时,应考虑其功耗。温彻斯特2.5“耗电约5瓦,可能需要一个单独的电源。您还应该记住有关通过USB向Raspberry输入输出的特定组织,显然,我们还有一个瓶颈:

Raspberry Pi 2模型B的功能框图

因此,测试媒体:

“ Internal”: MicoSD 8Gb等级10
外部:SD 32Gb 10+级(UHS)

LAMP的安装和组成


该系统应该很简单,但是具有完整的功能。因此,仅此一项要求而已,但由于内存允许,只有Apache将隐藏在Nginx后面。

操作系统

从图像2015-02-18-wheezy-minibian.img中将Minibian安装在“内部”媒体上。

这是Debian 7.8最低的Raspberry版本。我们进行了保留,他们希望标准存储库中的PHP不高于5.5,Apache不高于2.2。这不是一个令人讨厌的限制,但是对于本文而言,检查使用最新版本的可能性很有用。为了安装标准存储库中未包含的PHP 5.6.x和Apache 2.4.x,我不得不更改第8版Raspbian的源代码,apt-get升级后的系统开始具有8.0版。

阿帕奇

版本2.4.10(Raspbian)。已启用Gzip,连接了标准发行版中所有最常用的模块,包括mod_rewrite,mod_cache ...,不包括默认情况下启用的模块。

p

5.6.12-0 + deb8u1(cli)。在Apache中作为prefork运行。有php-curl,php-gd和其他流行的库。

的MySQL

5.5.44-0 + deb8u1-(Raspbian)。

Nginx的

Nginx / 1.6.2。Nginx负责静态操作。包含Gzip压缩。

让我提醒您,所有日志均写入外部介质,MySQL数据库在那里,未禁用swap,但在整个测试期间为空。

作为辅助实用程序,我使用PhpMyAdmin,htop,iostat和webmin。已安装Exim4,但仅用于从表单发送消息。如您所见,我们的服务器相当现代且功能强大。我会让VESTA控制面板的风扇感到失望-不幸的是,制造商不支持ARM处理器,并且在不久的将来也不会这样做。因此,webmin。

测试中


我不会立即进行任何综合测试,因为它们很可能来自非常遥远的理论领域。实际上,一切都很大程度上取决于托管站点的性质,时间负载分布,通信渠道,视图数量,站点访问者的时间...以及设置。换句话说,我建议看看现有站点的实际情况。

经过测试的网站不是基于任何CMS,而是使用动态(PHP)页面上的数据库图像显示,因此MySQL上的负载可能非常大。但是根本没有AJAX连接。由于我们的托管尚未声称是专业的,因此对于该测试而言,在其上放置16个活动量较低的活动站点已足够,其中大约五个每天大约100-200人,其余的不超过50个访客时间。总计-每天约800-900人,这在可接受的负载方面与廉价的共享主机相当。一半的访问者落在晚上,主要访问发生在20-22小时(两小时内约300人,平均4个观看次数=每分钟10次观看,每个速度约700 kb =每秒116 KB的流量)。我们将这段时间指定为“高峰时间”,同时我们将进行测试。测试将只有两种类型:使用第三方服务的性能评估和有关实际工作中的iostat实用程序htop的报告。

1.用户在“高峰时间”生成和加载页面的时间

对于两种类型的页面,我们仅使用两个主要参数-页面生成时间和页面加载时间-“重”(对于处理器来说很重,因为有很多来自MySQL的图片,是长生成的)和“轻”(正常的动态PHP页面)。我们将每个测试重复10次以减少出现随机结果的可能性,并且我们还将使用不同的服务。

让我提醒您有关测试服务器的地理位置及其可能的工作量。因此,绝对结果可能相差很大,这是正常现象。为了获得不同的服务加载时间,我以5-10分钟的中断时间进行了重复测量。被测试的Raspberry的通道是千兆位光学器件,地理位置是西伯利亚,到莫斯科的保证带宽为150兆位。为了验证服务器能够同时服务于多个连接,在以下服务站点上同时启动了测试:

轻页(547 kb,无MySQL访问)

瑞典PingDom.com

页面加载时间(46个请求):最小-925毫秒,最大-1124毫秒,平均-955毫秒。

Google PageSpeed见解

没有关于速度的抱怨。

Sitespeed.ru

总页面加载时间为3.9-4.2,平均为4.0。页面生成时间从139到157,平均145毫秒。这就是Google毫无怨言的原因-我们进入了允许的200毫秒。

“重载”页面(843 kb,包括来自MySQL的38张10-15 kb图片)

瑞典PingDom.com

页面加载时间(85个请求):最小-946毫秒,最大-1001毫秒,平均-973毫秒。

Google PageSpeed见解

没有关于速度的抱怨。

Sitespeed.ru

总页面加载时间5.3-4.2,平均4.0。页面生成时间从158到169,平均162毫秒。

2. htop实用程序的报告

不出所料,Htop显示出CPU时间的主要消耗者是mysql进程。他们从处理器时间的最后一天开始“吃”了98分钟。不足为奇的是,最初应该由我们来对基地进行频繁且“繁重”的查询。如果nginx缓存中有图片,我们将获得性能上的提升,但是该测试很有趣,因为它以一定的余量来模拟MySQL上增加的负载,这对大多数CMS来说都是典型的。

3. iostat实用程序的报告

该实用程序显示了对介质的平均读取和写入速度:
1.“内部”介质(系统)-平均读取0.87 kb / s,平均写入15.5 kb / s(最有可能是由于nginx缓存,有一些需要改进的地方)在配置中)。
2.“外部”媒体(站点,日志,数据库)-读取速度为2.4 kb / s,写入速度为3 kb / s(此处一切正常,读取被缓存,日志被写入)。

4. CPU分配

通过htop,采样进行的CPU时间分配-恰好工作了两天(根据Yandex指标提供了1600位唯一身份访问者):

mysql 6.8%
htop 1.8%
nginx 0.75%
apache2 <0.3%

在几乎其余时间里,处理器都处于休息状态。

结果,我们在空闲处理器时间上有很大的余量,在提高处理器频率上有余量,在记录媒体速度方面有余量。对于配置服务器程序(例如,将Nginx缓存放在单独的介质上)以及站点本身,有许多优化可用。综上所述-具有提高整体生产率的良好潜力。


尽管有其他同时访问的事实,我们的虚拟访问者还是喜欢微型计算机上Web服务器的速度。因此,尽管存在瓶颈(USB和处理器),但我们有一个非常明显的结论-Raspberry Pi 2 B型上成熟的Web服务器是真实的。在软件和技术参数方面。基于所考虑的选项中非常低的工作量,我将假定他每天将能够迅速为至少两千名平均站点的访客提供服务。

多重处理有助于更快地处理请求,有足够的内存用于缓存,USB数据传输令人满意,因此,婴儿服务器不仅可以节省电力,而且可以快速(加上廉价!)更换故障设备。与其他流行的解决方案相比,这种系统在企业网络上用作公司服务器(数据库服务器,Web服务器,备份服务器,文件共享)时可以收回成本。当然,可以替代虚拟主机。例如,在预算不间断的电源上,与路由器配对的微型计算机可以工作数小时,因此可以在家里解决短时间(不是这样)的问题,如果提供商的站点也有UPS。您还可以控制电力,向各种设备发出命令,连接摄像机和各种传感器...

尝试一下,试验一下,微型计算机-它不仅价格便宜,而且安静宜人。

Source: https://habr.com/ru/post/zh-CN384209/


All Articles