このページは機械翻訳されています。英語の原文をお読みください。 English

IBSurgeon ライブラリ

高速、強力、そして低コスト:1000ドル未満で小規模ビジネスデータベースに十分な性能を備えたサーバー

(c) Alexey Kovyazin, IBSurgeon, 2017年9月21日(最后更新 - 2017年9月29日)

如果你准备好花很多$$$,那么获得一台强大的服务器是很容易的:有像Dell、HP这样的领先供应商,以及许多不太知名的硬件公司,他们会很乐意卖给你一台强大的机器(通常,交货需要4-6周)。

然而,资金总是一个问题,尤其是对于小型企业和初创公司来说,因此对“足够好”的廉价解决方案有巨大需求。本文介绍了为小型企业构建具有足够性能的“足够好”数据库服务器的实用方法。它还包含计算和我们推荐的具体产品的链接。

我们公司(IBSurgeon)为Firebird数据库提供数据库咨询和护理服务,我们见过许多类型的服务器(或者更准确地说,是当作服务器使用的计算机)。大型客户使用高端配置,配备基于SSD的SAN、350+Gb内存和双顶级Xeon处理器,但中小型企业客户使用性能较低的机器,因为他们不需要太多计算能力,也没有很多钱。

我们注意到,许多服务器实际上是普通的工作站,而最有趣的是,它们年复一年地运行得非常稳定。有一些非常奇特的情况,比如在配备2Gb内存的计算机上运行Windows XP(这台计算机是2002年制造的!),但大多数只是“足够好”的自建硬件解决方案。

当然,这是一个统计问题,没有人会推荐使用工作站作为服务器,但问题是:稳定性和费用之间的平衡在哪里?使用廉价的自行组装服务器在性价比方面是一个好方法吗?用1000美元我们能得到什么?与廉价硬件相关的风险是什么?

谁会对低于1000美元的数据库服务器感兴趣?

让我们考虑以下情况:一个办公室有20-25名员工,人们每周工作7天、每天5小时(或理解为7x5工作制),数据库大小约为50Gb。这是小型企业的典型情况,他们使用某种ERP或CRM或特定应用程序(例如,牙科诊所自动化系统)来运行基于Firebird的小型企业应用。

让我们想象一下,这家公司并不富裕,他们希望在尽可能节省的同时不失去可靠性,以达到足够好的性能。公司中的负责人明白所有硬件迟早都会出故障,并希望降低相关风险。

对于这种规模和负载的Firebird数据库,他们需要什么样的服务器?根据Firebird硬件指南,数据库最关键的资源是磁盘IO,其次是内存,最后是CPU(有趣的是,当SMB客户从大型供应商购买服务器时,他们通常选择具有强大CPU和慢速磁盘的服务器,这可能是由于营销材料过度强调了CPU的重要性)。

磁盘

快速IO意味着我们需要固态硬盘(SSD),因为SSD是随机读写之王。当然,SSD并不是数据库的万能药,但它提供了真正的高性能,现在它是数据库的正确选择。

SSD有两种类型–企业级和消费级磁盘。它们之间的关键区别在于资源,大致计算为它们可以执行的IO操作数量。

例如,三星850 Pro 256 Gb MZ-7KE256BW–消费级SSD(基于MLC技术),其TBW(总写入字节数)为150 PB,DWPD(每日磁盘写入次数)= 0.16。或者,更简单地说,资源可以解释为每天写入40Gb,持续10年。

更新:我们收到建议,Samsung PM863a(181.59美元)或SM863a(249美元)比850 Pro更可靠,但仍然负担得起–基本上,多花60美元我们可以获得更好的稳定性和某种电涌保护。

这算多还是少?我们有一台使用消费级SSD的测试服务器,我们在上面运行负载测试,模拟60Gb数据库上100个连接的高强度工作。每天启动3次这样的测试,每次3小时–这意味着这些测试模拟了9小时的工作日。测试已经运行了2年,剩余资源(根据固件)为54%。

当然,约50%的资源意味着驱动器应该在接下来的一年内更换……这有那么糟糕吗?每隔几年,SSD的速度就会提高,价格会下降:示例中的SSD具有6Gb/s速度,价格为137美元,2-3年后会有同样价格的12G驱动器。

亚马逊价格从124美元起

企业级SSD基于另一种技术(SLC)构建,大约可以执行比同尺寸消费级SSD多30倍的操作。此外,它们的价格大约是消费级SSD的3倍。问题是:对于小型企业服务器,我们真的需要多30倍的IO轮次,而价格只多3倍吗?

如果我们正在寻找一个快速且负担得起的解决方案,那么使用廉价的消费级SSD并定期更换(当然,通过固件监控其资源)是非常有吸引力的。

与SSD相关的风险

作为理性的人,我们理解消费级硬件资源较少,故障几率较高,所以我们需要降低这些几率。我们如何降低它?

为了减少突然硬件故障的机会,有必要为数据库使用2块SSD,并捆绑在RAID1中。RAID1并不意味着我们需要单独的RAID控制器,使用现代主板芯片组的RAID功能就足够了–本质上,这是一个没有缓存的简单RAID控制器。

更新:由于主板上的廉价RAID控制器可能不支持SSD的TRIM功能,为避免性能下降,建议设置软件RAID,它在软件层面协调同步操作。

如果没有缓存,性能会怎样?现代SSD,比如示例中的三星,具有内置缓存和非常智能的控制器–所以即使没有专用RAID控制器,它们也足够快。

当然,检查磁盘健康状况是必要的;通常,固件提供了对磁盘寿命的足够好的估计。

备份

当然,我们需要用于备份的驱动器。最好的选择是一对2Tb的SATA驱动器–例如,Seagate SkyHawk 2TB监控硬盘,转速为5900 rpm。

亚马逊价格为74.99美元

我们需要2块HDD,因为备份驱动器也必须放入RAID1中,以提供对突然硬件故障的保护。这些备份驱动器可以相当慢,它们的主要目的是存储备份并提供足够的顺序读写速度。5900 rpm驱动器比7200 rpm慢,但已知它们更可靠。这个特定系列的驱动器(Seagate SkyHawk)专为线性写入而设计:这正是我们备份所需要的。

备份驱动器的风险

风险与SSD相同,我们以相同的方式保护:RAID1和监控。RAID1中的两块驱动器同时故障的可能性应该很小。

系统驱动器

我们需要为操作系统单独准备一个驱动器吗?在最便宜的配置中–不需要,将操作系统和数据库放在同一个驱动器上就足够了。这会稍微加速SSD的退化,但不会太多–在我们的场景中,它绝对应该能维持3年。

CPU

对于Firebird数据库服务器,最好选择具有多核心且频率尽可能低的CPU。是的,你没看错–数据库服务器不需要高频率CPU。Firebird(如果配置正确)使用所有核心进行正常工作,但不会以100%的负载运行它们。

也有例外:一些维护操作(备份和恢复)受益于高速CPU,以及错误使用索引的糟糕SQL查询–它们会消耗100%的核心,但这清楚地表明需要进行数据库性能优化。总的来说,用高端CPU无法弥补慢查询:即使CPU快3倍,慢查询仍然会很慢。

一方で、複数のコアを搭載することで、このようなCPUを消費するクエリの存在を補うことができます。ユーザー数が25人未満で8コアの場合、すべてのコアが同時に低速クエリで占有される可能性はそれほど高くありません。

また、安価なソリューションを探しているため、デスクトップCPU、そして残念ながらAMDチップに限定されます。基本的に、IntelがAMD FX-8320Eと同じ価格またはわずかに高い価格で8コアのデスクトッププロセッサを提供できれば、Intelも使用できるのですが、現時点ではそのような選択肢は見当たりません。

このAMDチップはそれほど新しくも速くもありませんが、8コアを搭載し、安価であるため、高速で安価なサーバーにとって最適な選択肢です。

Amazonでの価格はUSD$108です。

デスクトップCPUに関連するリスク

CPUに関連する潜在的なリスクは何でしょうか?低周波数(つまり、オーバークロックされていない)チップで適切なクーラーを備えている場合、リスクはほとんどありません。最後にデスクトップCPUの故障を聞いたのはいつですか?2003年でしょうか?もちろん、サーバーCPUの方がはるかに高速ですが、私たちは十分に良いソリューションを探しています。

偶発的な再起動を防ぐために、CPUの負荷と温度を監視することは良い考えです。

RAM

必要なRAMの量は、データベースのサイズとユーザー数によって異なります。私たちのシナリオでは、データベースサイズは50GBで、最大30人のユーザーがいます。

Firebirdが消費できる最大サイズは、データベースサイズ(この場合、RAMに完全にキャッシュされます)にユーザーあたり200〜300MBを加えたものです(Firebird 2.5 SuperClassicの場合)。したがって、理想的な最大RAMサイズは64GBですが、節約したいことと、高速なSSDがあることから、16GBまで減らすことができます。

このようなシナリオでは、8GBでも問題なく動作するユーザーもいますが、8GBはかなり厳しいです。この場合、同じサーバーで他のアプリケーションを使用しないでください。16GBが推奨される最小限の最適値です。

Amazonでの価格はUSD$59.99 x 2 = $120です。

RAMに関連するリスク

RAMはCPUよりも障害に対して脆弱ですが、ディスクよりは脆弱ではありません。エンタープライズグレードのRAMには、パリティチェックなど、エラーの可能性を減らすための特別なメカニズムがあります。メモリ障害のリスクをどのように見積もり、減らすことができるでしょうか?

まず、メモリチップをチェックする方法があり、そのようなテストが正常に合格した場合、RAMチップは何年も動作します。次に、RAMが故障した場合、通常は非常に顕著です。コンピュータがブルースクリーンまたはカーネルパニックを起こすか、頻繁に再起動します。これらの症状はすべてチェックが必要であり、結果が悪い場合はRAMの交換が必要です。

マザーボード

マザーボードは、あらゆるコンピュータの重要な部分です。幸いなことに、最新のデスクトップ用マザーボードは非常に信頼性が高く、特に4〜5年前にリリースされたマザーボードは、必要なアップデートがすべて適用され、安定しています。そして、そう、それらは安価です。

RAIDサポート、内蔵ビデオチップ、十分なSATAポートを備えたマザーボードが必要です。次のようなものです:

ASUS M5A78L-M Plus/USB3 DDR3 HDMI DVI USB 3.0 760G MicroATXマザーボード

Amazonでの価格はUSD$74,99です。

非常に良いレビューがあり、RAID1を簡単に構成できます。

デスクトップケース

すべてのコンピュータコンポーネントを接続するための、十分な電源を備えたデスクトップケースが必要です。次のようなものです:$76,82 http://amzn.to/2ydeYs1

UPS

サーバーの一部ではありませんが、重要なデータが含まれるすべてのコンピュータに装備すべきもの、それが無停電電源装置(UPS)です。

UPSは、停電や電圧変動からコンピュータを保護します。私たちの経験では、電力サージや異常な電力喪失は、データベース破損の主要な原因です。

CyberPower CP1200AVRのようなもので、$117.97であれば十分でしょう。

合計

結果として、すべてのコンピュータコンポーネントとUPSの合計価格はUSD 855,27です。これはUSD1000未満ですが、これらのコンポーネントが動作するコンピュータになる前に、組み立て、OSのインストール、テストを行う必要があります。

項目 価格 数量 合計
SSD Samsung 850 Pro 256 Gb MZ-7KE256BW $124,24 2 248,48
Seagate SkyHawk 2TB 監視用ハードドライブ 74,99 2 149,98
CPU AMD FX-8320E $86,02 1 86,02
RAM Corsair Vengeance 8GB $61,99 2 123,98
マザーボード ASUS M5A78L-M Plus $57 1 57
デスクトップケース $69,99 1 69,99
CyberPower CP1200AVR $119.82 1 119,82
合計 855,27

サーバーの組み立て

これらのすべての部品を作動するサーバーに組み立て、そこにオペレーティングシステム(CentOS7+やUbuntu Server 16+などのLinux系を推奨します)をインストールするには、これらのコンポーネントを正しく組み立て/接続する必要があります。

これは難しくなく、ドライバーと少しの忍耐、そして説明書を注意深く読み、いくつかのYouTubeビデオを見る時間が必要なだけです。10年前はほとんどすべての開発者がこれらの部品からコンピュータを組み立てることができましたが、現在は異なりますが、それでも難しくはありません。

サーバーを組み立てたくない場合は?

近道があります。ほぼニーズに合う同様の構成のコンピュータを購入し、そこに追加のコンポーネント(つまり、ディスク)を接続することが可能です。

このコンピュータを見ることをお勧めします。元々ゲームPCとして設計されており、8コアCPUと16GB RAMを搭載し、USD$709のみです。

そこに、SSDドライブのペア(+$248,48)、もう1つのバックアップドライブ(+$74,99)、そしてもちろんUPS(+119.82)を装備(ケースを開けて接続)する必要があります。合計はUSD 1153になります。これは$1000の目標より高いですが、主にビデオカードと素敵なデスクトップケースのためです。また、RAID1を(BIOSで)構成し、もちろん、プリインストールされているWindows 10 Homeの代わりにサーバーOSをインストールする必要があります。

このアプローチは、強力なデスクトップコンピュータをサーバーに変えるために使用できます。冗長なSSDとバックアップドライブを追加するだけです。

過去には多くの中小企業やスタートアップがこのような自作サーバーを使用していましたが、現在はクラウドベースの仮想マシンを使用する傾向があります。

仮想マシンは自作サーバーとどのように比較されるのでしょうか?

もちろん、独自のサーバーを構築および維持するにはある程度のスキルが必要ですが(見た目ほど高くはありません)、多くの企業はすべてのハードウェアサーバーを廃止したいと考えています(そして、おそらくサーバーを担当するシステム管理者を解雇したいと考えています)。

次の記事では、中小企業向けのデータベースサーバーとしてのクラウド上のVMについて検討します。

Firebirdデータベースのパフォーマンスに関するその他の記事:

  1. Firebirdハードウェアガイド
  2. 1.7TB Firebirdデータベースのチューニング
  3. Firebirdパフォーマンス最適化サービス
  4. Firebirdデータベースを高速化する45の方法
  5. 最適化されたFirebird構成ファイルのコレクション

お問い合わせ

お気軽にご質問ください:[email protected]

謝辞

この記事に提案や改善点を送ってくださった方々に感謝します:

  • Vlad Khorsun
  • Dmitri Kuzmenko
  • Pavel Zotov
  • Sergey Nikitin
  • Emil Mustea