终极 Linux 服务器
在开始搜索之前,我们定义了描述我们的终极 Linux 服务器的具体参数。简而言之,该服务器必须为可靠性、高可用性而构建,并提供最高的性价比。只有一家供应商为我们提供了一款符合我们要求的服务器。虽然这使得选择 Aberdeen Stonehaven A261T 双核双处理器机架式服务器作为我们的终极 Linux 服务器变得容易,但人们不应因此认为 Stonehaven 的顶级地位并非实至名归。这款服务器满足了我们的入门标准,甚至超越了这些标准。
Aberdeen Stonehaven A261T 机架式服务器配备了两个双核 AMD Opteron 处理器,总共有四个有效 CPU,并配备了六个 250GB 硬盘驱动器,配置为 RAID 5。如果您需要,Aberdeen 可以提供高达 12TB 的存储空间。该服务器配备了冗余电源,以提高可用性。如果一个电源出现故障,您可以热插拔一个新的电源来替换它。您也可以热插拔 SATA 驱动器。
A261T 基于 Tyan S2882-D Thunder K8SD Pro 主板。长期以来,Tyan 一直是可靠的服务器主板供应商,而这款特殊的型号是构建服务器的绝佳基础。该服务器包括一个 Areca SATA RAID 控制器。默认的 Linux 软件是 Red Hat Enterprise Linux Server 4.0,64 位 (x86_64),它与服务器一起提供,还包括一些驱动程序光盘、手册和其他小礼品。
以下是我们测试的这款机箱的官方功能列表
AMD Opteron 64 位双核 265 (1.8GHz),每个核心处理器 1GB 内存。
六个 250GB SATA 7,200RPM 16MB 缓存硬盘驱动器,带 NCQ。
1.5TB 存储容量(最大 3TB)。
2GB 注册 ECC DDR 400 内存(16GB 内存容量)。
六个热插拔驱动器托架。
可用的 5.25 英寸托架,用于可选的磁带备份。
双千兆以太网控制器。
冗余 460W 热插拔电源。
热插拔四个 10 厘米风扇和两个 4 厘米风扇。
八端口 SATA II 3Gb/s RAID 控制器(0、1、10、5、6、50、JBOD 功能),带电池备份模块。
RAID 管理软件安装和用户指南。
Tyan 系统监控服务器管理软件安装和用户指南。
五年部件和人工保修。
可选:XDAS 可扩展存储设备功能。
我们对 A261T 运行了一系列基准测试。其中大多数产生了无意义的结果,因为 A261T 对于我们的基准测试来说速度太快,无法充分地对硬件施加压力。我们最终基于 siege 程序制作了自己的基准测试,该程序模拟了许多同时访问 Web 页面的 Web 客户端。为这个基准测试提供静态页面是不行的,因为那样不会对服务器造成明显的压力。因此,我们创建了一个基于 Apache、PHP 和 MySQL 的网站,其中包含 IFrames、JavaScript 并记录关于每个访问者的信息,以便每次页面访问都会在 MySQL 上产生写入操作以及读取操作。
事实证明,这对服务器来说一开始负担太重了。实际上,我们的小型工作站的性能大大超过了服务器。当然,这没有任何道理,因此我们开始了一次故障排除狂潮。答案原来是一个配置不佳的 Apache 文件 (httpd.conf)。我们怀疑故障主要在于 Red Hat Enterprise Linux 中的 GUI httpd 配置工具,但我们还没有时间撤销所有更改并从头开始尝试该过程,以便确定问题出在哪里。无论如何,这是 Red Hat EL 4.0 的问题,而不是服务器硬件的问题。任何称职的管理员都会希望以某种方式调整 http.conf,使其适应他们的应用程序,无论他们是手动进行还是通过任何一种基于 Web 或 GUI 的工具进行。
我们没有轻易地发现这个问题,但这主要归功于墨菲定律,其中包括一个公理,即人们永远不会在第一次就找对地方。起初,我们注意到 MySQL 占用了异常多的 CPU 功率。是 Red Hat Enterprise Linux 4.0 自带的过时 MySQL 导致了问题吗?不是。我们将 4.x 版本的 MySQL 替换为 5.x 版本,但没有任何区别。我们运行了 up2date 并选择将现有的 Linux 内核替换为最新版本。事实证明,这是一项比预期更大的任务。Red Hat 内核不包括对 Areca RAID 控制器的支持。幸运的是,Aberdeen 提供了一张 CD-ROM,其中包含驱动程序代码和用于为任何新的 Red Hat 内核创建模块的说明,以及关于将此模块包含在初始 RAM 磁盘中的说明。一旦我们找到这些说明,只需几分钟,我们就启动并运行了新的内核。但这并没有什么用。新的内核和驱动程序并没有提高性能。
那时我们最终查看了 Apache httpd.conf 文件。凭着直觉,我们删除了 Red Hat 的 GUI 工具创建的重复 Alias 行,并调整了 Apache 的预分叉参数。以下是我们最终使用的参数
<IfModule prefork.c> StartServers 20 MinSpareServers 5 MaxSpareServers 20 MaxClients 256 MaxRequestsPerChild 0 </IfModule>
我们重启了 Apache 和 MySQL,重新初始化了数据库和网站,然后似乎没有什么能够减慢这台机器的速度。siege 基准测试默认模拟 15 个并发客户端。不要被这个看似很小的客户端数量所迷惑。siege 基准测试不仅仅向网站发送 15 个客户端,它还会持续地冲击网站,这与 15 个真实用户不同。真人会阅读页面并继续前进。siege 基准测试不费心阅读任何内容。它只是不断地冲击。
尽管如此,A261T 对我们的 15 个并发用户嗤之以鼻。因此,我们不断增加数量,直到达到 500 个并发用户,这产生了足够的负载,使服务器意识到我们的存在。表 1 显示了 500 个并发用户的 siege 测试的最终结果。
表 1. 500 个并发用户的 siege 测试结果
事务 | 25,000 次点击 |
可用性 | 100.00% |
经过时间 | 81.29 秒 |
响应时间 | 0.71 秒 |
事务率 | 307.54 事务/秒 |
并发 | 218.21 |
成功事务 | 25,000 |
失败事务 | 0 |
最长事务 | 45.36 |
最短事务 | 0.00 |
正如您所看到的,响应时间通常不到一秒,这对于我们提供的页面类型来说非常快。服务器在并发 218 个请求的情况下,每秒可以交付超过 300 个事务,这不成问题。
我们不得不回到我们的工作站,尝试同样的测试,因为之前工作站在 15 个并发用户的情况下就让 A261T 服务器相形见绌。我们更改了工作站配置以匹配服务器,但工作站甚至无法完成 500 个并发用户的测试。事实上,我们能让它完成测试的唯一方法是将并发用户数减少到最多 100 个,即使这样它也失败了一个事务。我们在一个配备 AMD 4400+ Athlon x2 处理器、4GB DDR400 RAM 和 300GB SATA 3.0Gb/s 驱动器(无 RAID)的系统上生成了表 2 中的数字。
表 2. 相同测试,在工作站上
事务 | 4,999 次点击 |
可用性 | 99.98% |
经过时间 | 37.45 秒 |
响应时间 | 0.05 秒 |
事务率 | 133.48 事务/秒 |
并发 | 6.80 |
成功事务 | 4,999 |
失败事务 | 1 |
最长事务 | 7.35 |
最短事务 | 0.00 |
如果不提及我们个人的失误,这个故事就不完整。当我们第一次设置 Aberdeen 服务器时,它发出了极其响亮的呜呜声。我们容忍了这种噪音,时间似乎很长(更像是玩弄服务器和运行原始基准测试的两周,我们最终不得不更换基准测试)。当我们受够了之后,我们打开机箱,倾听特定区域并四处触摸以寻找振动,以便找到噪音的来源。手腕一滑,突然有一块拇指卡在 CPU 风扇叶片中。(永远不要说我们在我们所做的一切中没有投入一点自己。)现在我们不仅有响亮的呜呜声,而且风扇还发出了几乎难以忍受的嘎嘎声。
事实证明,呜呜声只是服务器在告诉我们其中一个冗余电源无法工作。为什么它不工作?因为我们没有将电源线完全推入。事实证明,如果我们只是更仔细地推入电源线,我们就可以为自己节省两周的痛苦和一个创可贴。至于风扇,它工作,但噪音很大。但是我们在等待 Aberdeen 发送另一个风扇时,用我们自己的风扇替换了它。一旦我们让服务器正常运行,它绝不是悄无声息的,但听起来就像任何其他必须推动大量空气才能保持凉爽的机架式服务器一样。
这种特定配置的零售直销价为 4,999 美元。考虑到其可靠性设计以及出色的性能和可扩展性,我们认为 A261T 为这笔钱提供了非常超值的性能。这款型号非常值得我们授予其终极 Linux 服务器的称号,我们毫不犹豫地推荐 Aberdeen 系列服务器。
公司信息
Aberdeen LLC
9130 Norwalk Boulevard, Santa Fe Springs, CA 90670
电话:562/699-6998
销售:800/552-6868
传真:562/695-5570
Nicholas Petreley 是Linux Journal 的主编,曾任程序员、教师、分析师和顾问,从事 Linux 工作和写作已有十多年。