キャパシティプランニングを手伝ってもらえますか?


132

これは容量計画に関する標準的な質問です

関連する:

キャパシティプランニングに関して質問があります。サーバーフォールトコミュニティは次のことを支援できますか?


  • 一部のユーザーを処理するには、どのようなサーバーが必要ですか?
  • ある仕様のサーバーは何人のユーザーを処理できますか?
  • ウィル一部のサーバー構成では、のために十分に高速である私のユースケース
  • ソーシャルネットワーキングサイトを構築しています。どのようなハードウェアが必要ですか?
  • プロジェクトに必要な帯域幅はどれくらいですか?
  • 一部のユーザーが特定のアプリケーションで使用する帯域幅はどれくらいですか?

回答:


97

サーバーフォールトコミュニティは通常、キャパシティプランニングを支援することはできません。私たちが提供できる最善の答えは、「本番環境で使用するものと同様のハードウェアでコードをベンチマークし、ボトルネックを特定し、ワークロードの量を判断することです現在のハードウェアを扱うことができ、および/またはどのくらいのハードウェア馬力、あなたのターゲットワークロード」を処理する必要があります


容量計画では、質疑応答サイトで適切に評価できない要因がいくつかあります。

  • 特定のコード/ソフトウェアの要件
  • 外部リソース(データベース、その他のソフトウェア/サイト/サーバー)
  • ワークロード(ピーク、平均、キューイング)
  • パフォーマンスのビジネス価値(コスト/利益分析)
  • ユーザーのパフォーマンスへの期待
  • サービスレベル契約/契約上の義務

これらの要因やその他の要因について適切な分析を行うことは、単純な質疑応答サイトの範囲を超えています。チーム(または適切に補償されたコンサルタント)のみが効率的に収集できる環境と要件に関する詳細な知識が必要です。


キャパシティプランニングの公理

  1. RAMは安価
    ですアプリケーションで大量のRAMを使用することが予想される場合は、余裕のある/収まるだけのRAMを配置する必要があります。
  2. ディスクは安い
    ディスクを大量に使用する場合は、大きなドライブを購入する必要があります。
    SAN / NASストレージは安価であり、また、後でコストのかかるアップグレードを回避するために、通常は小規模ではなく大規模に指定する必要があります。
  3. ワークロードは時間
    とともに増大しますリソースのニーズが増加すると想定します。
    増加は対称的ではない可能性があり(CPUとRAMはディスクよりも速く上昇する可能性があります)、線形ではない可能性があることに注意してください。
  4. 電力は高価
    RAMとディスクの価格は大幅に低下しましたが、電力のコストは着実に上昇しています。CPUパワーは言うまでもなく、これらの追加のディスクとRAMはすべて、電気料金(またはプロバイダーに支払う料金)を引き上げます。それに応じて計画します。

1
あなたはそれを完全に落とし、部品ごとの統合を使うべきです!
ジル

+1。そして、あなたが公理#1で示唆しているように、RAMは大きな利点があるものの1つです。たとえば、キャッシュをより有効に活用する能力が向上します。これにより、データベースクエリを減らすことができ、ディスクとCPUの負荷が軽減されます。私は、サーバーと高速なCPUを備えた高速なCPUと最小限のRAMを提供するホスティングプロバイダーにしばしばイライラしています。
スティーブウォーサム

31
これに追加します。ディスク容量は安いです。ディスクのパフォーマンスは高くなります。特に、10年以上のディスクサイズの増加が見られますが、物理法則は変わっていません。私が使用する経験則(今日現在、2014年6月)は、最適なパフォーマンスのために、SATAではスピンドルあたり75 IOP、FCではスピンドルあたり200 IOP、SSDあたり1500 IOPです。大きなSATAドライブでは、ギガバイトあたりのIOの比率が非常に低くなります。
Sobrique

2019年半ばには、もはやスピンドルドライブを購入する必要はありません。
ロバートハーベイ

@RobertHarveyは、もはやSASスピンドルドライブを購入すべきではありません。petaboxスケールサーバーのキャパシティを取得するには、まだ多くのSATAドライブを取得する必要があります。
ミッコランタライネン

44

仮想マシン数の計画

単一のホスト上で計画する必要があるVMの数を把握する場合、実際には実際に良いルールはありません。実際、たった1つしかありません。

仮想マシンのカウントは、そうでない場合を除き、通常RAMによって制限されます。

これはあまり役に立ちません。これらのVMが低CPUアプリケーションを実行している場合、リミッターはRAMに基づいています。各VMプラットフォームには、RAMをオーバーサブスクライブする独自の機能があるため、TOTAL_RAM / Per-VM-RAM = MachineCountほど簡単ではありませんが、その数は適切な計画項目です。

しかし、VMが低CPUパケットスリング以外のことをしている場合はどうでしょうか?


仮想マシンのカウントは、ホストマシンで使用可能な7つの個別のリソースによって制限されます。

  • ハイパーバイザーVMware、Xen、HyperV、KVMなど。それぞれに独自のカウントインパクト機能があります。メモリページの重複排除が得意な人もいれば、そうでない人もいます。CPUキャパシティのオーバーサブスクリプションを許可しないものもあれば、許可するものもあります。
  • CPUコア速度これにより、VMが実行できる最大シングルスレッドパフォーマンスが制限されます。1.8 GHz CPUの36コアは、ホスト上で64.8 GHzのCPUである場合がありますが、1.8 GHzより高速に実行される単一スレッドはありません。
  • CPUアカウントこれは、コア速度で、経験できる最大CPUパフォーマンスの上限を表します。
  • システムRAM上記で説明したように、これにより、実行できるVMの数が制限されます。特定のハイパーバイザーは、メモリページの重複排除などの点で他のハイパーバイザーよりも優れているため、100個のまったく同じVMを実行している場合、100個のまったく異なるVMを実行している場合よりも、こうした重複排除システムにこれらの多くをパックできます。
  • ディスクサイズ各OSイメージには、一定量のスペースが必要です。すべてを保存するのに十分なスペースが必要です。したがって、disk-sizeは、ホストできるVMの数に上限を設けます。
  • I / O帯域幅 VMの基礎となるディスクには、1秒間に処理できるI / Oの最大数があります。投げすぎると、I / Oが完了するのを待ってシステムが動き出します。これにより、実行できるI / O消費VMの数に上限が設けられます。
  • ネットワーク帯域幅ネットワークを使用するVMの場合、利用可能なネットワーク帯域幅は、特定のホストで実行できるVMの数に上限を設けます。

これらはすべて、あなたがつまずくものになる可能性があります。それはすべて、VMで何をしているかに依存します。覚えておくべきこと:

  • 汎用システムのようなものはありません。
  • アプリケーションコードは、ほとんど動きのないCDNスタイルのサービスから、ビデオトランスコーディングのような大きなひび割れのものまで実行できるため、汎用のWebサーバーなどはありません
  • 汎用データベースサーバーのようなものはありません。これらは、セッション状態の追跡だけに使用される小さなシステムから非常に大きなシステムまで実行できます。

ホストシステムにパックできるVMの数を把握するには、システムの実行方法と適切な実行に必要なものを知る必要があります。それがわかったら、カウント計画を行うことができます。そして、さらに良いことに、ホストシステムを作成するのにどれだけの力が必要かを考えてください。


とりわけ、バインドされていないvmを持つ2つの個別の物理サーバーでvmベースのシステムを使用してください。これにより、システム全体を失うことなくハードウェア障害が発生します。vmは、データを失うことなく同一のサーバー間を移動できます。セッションだけが失われ、再構築されます。個人的には、これらのサービス(グーグルまたはアマゾン)を提供するホスティング会社に外注します。彼らは高価ですが、あなた自身を走らせるよりもはるかに少ないです。
ランダムIT

2
VMの実装で最も頻繁に不足しているのは、ディスクI / Oです。ほとんどの人は、ディスク容量、CPU速度、およびメモリを理解しています。彼らはそのディスクパフォ​​ーマンスを忘れています。
ダンプリッツ

6

正しい質問をしていることを確認してください。

  • コンピューターは安い
  • 将来のニーズを予測するのは非常に難しい
  • 事前に購入するものではなく、拡張方法を計画する

必要なものがわからない場合は、あまり必要ないことを意味します。ホットWebサイトがある場合は、おそらく、アプリが必要とするRAM、ディスク、IO、ネットワークなどの量を知っている運用チームもいるでしょう。夢のような段階にある場合は、デスクトップから始めて作業を進めてください。

物事が大きくなったときにどのようにスケーリングするかについて、ある程度のアイデアがあることを確認してください。ロードバランサーの背後にさらにサーバーを追加できますか?redisサーバーをシャードできますか?

また、独自のデータセンターを持つのは面倒です。データセンターは(たとえ1台のコンピューターであっても)実際の目的から逸脱します。コンピューターを購入し、電源を入れて、立ち去ることはできません。エアコン、空気ろ過、信頼性の高い電力、信頼性の高いインターネット、バックアップ、スペアパーツ、成長するための物理的な部屋、成長するための電力容量、つまずかない電源ケーブル、その他無数の頭痛が必要です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.