CPUパフォーマンスはデータベースサーバーに関連していますか?


33

これは純粋に理論的な質問です。複数のサーバーにデプロイされたアプリケーションがあるとします。

  1. ロードバランサー、
  2. 複数/スケーラブルなアプリケーションサーバー
  3. (単一の)データベースサーバー(現時点では)

最初の2つの部分では、何を探すべきかがわかります。しかし、データベースサーバーはどうでしょうか。どのようなハードウェアを探すべきですか?

  • CPU周波数はデータベースサーバーに関連していますか?
  • 複数のコアCPUが関連していますか?
  • RAMはCPUよりも重要ですか?

PS:選択したデータベースがMySQLまたはPostgreSQLであると仮定します。


まあ、それが必要です。
ConcernedOfTunbridgeWells

回答:


29

PostgreSQLの場合、特にデータのアクティブなワーキングセットのか​​なり高い割合がRAMに収まる場合、CPUパワーは非常に重要です。私が使用したデータベースのほとんどは、ほとんどの場合、CPU能力が主なボトルネックでした。(5 TBを超えるデータベーススペースをホストする1日あたり数百万のヒットがあるWebサイトをホストするサーバーでvmstatを確認したところ、2%を超えるディスク待機時間は見られませんでしたが、ピークはユーザーCPU時間の12%でした。)

PostgreSQLはプロセスベースであるため、単一のプロセスは1つのコアと同じ速度でしか実行できませんが、上記のサーバーと同様に、小さなリクエストが大量にある場合、すべてのコアの合計CPUが最も重要です。総CPU電力が同じでも、PostgreSQLは一般に、多数の低速コアよりも少数の高速コアで優れたパフォーマンスを発揮します。

アクティブなデータセットの高い割合がキャッシュされる時点まで、RAMを追加すると、通常、コアを追加するよりも大きな価値があります。十分なキャッシングが得られると、追加のRAMの利点が低下し、CPUのパワーをブーストしたほうがよいでしょう。

PostgreSQLに関連するこのトピックの詳細については、Greg SmithによるPostgreSQL 9.0 High Performanceほど良いソースがあるとは思いません。(完全な開示、私はこの本の技術的レビュアーでしたが、売上に基づく金銭的利益はありません。)


ねえ、私は本を持っています。参照している特定のページ、セクション、または章はありますか?(PostgreSQLの観点からはBTW +1)
-RolandoMySQLDBA

PostgreSQLに関する情報をありがとう。本を確認します。;)
ゼンクリス

1
21-23ページの良いもの
RolandoMySQLDBA

21〜23ページと比較すると、2番目の段落の知恵がわかります。
RolandoMySQLDBA

23

MySQLの観点から厳密に言うと、それは非常に負荷の高い質問です

データベースサーバーに関連するCPU周波数は?

高速なCPUとマザーボードは優れていますが、他のボトルネックが邪魔になる可能性があります。そのようなボトルネックは次のとおりです。

  • ディスクI / O
  • 接続の上限
  • ネットワーク遅延
  • 接続ごとのクエリパフォーマンス

すべての小さな利点が役立ちますが、CPU速度自体は前述のボトルネックを改善しないため、いいえと言わざるを得ません。結局のところ、F1 RaceCarは、オープンパラシュートを着用したり、ホイールに800ポンドのゴリラを装着したりすることで何ができるでしょうか。

複数のコアCPUが関連していますか?

これは、実行しているMySQLのバージョンに完全に依存します。MySQL 5.1 InnoDBプラグイン、MySQL 5.5、およびPercona ServerのXtraDBにはすべて、InnoDBがすべてのコアにアクセスするために適切に構成する必要がある設定があります。これを行うための真のインセンティブは、過去の投稿で説明したように、いくつかの古いバージョンのMySQL LEFT UNCONFIGUREDが新しいバージョンよりも高速であるという事実から生じています。

したがって、すべてのCPUにアクセスするためにInnoDBを構成するつもりがない場合、複数のコアを使用してもまったく何も買えません

RAMはCPUよりも重要ですか?

ああ、そうです。MySQLのメモリ構成にはセットアップが必要です

これらの事柄とMySQLの任意の組み合わせの要求が少なすぎるか多すぎると、あなたに噛みつきます。MySQLのRAMが不適切に構成されているCPUが高速になると、MySQLが高速に動作します。


2
素晴らしい答え。これらすべてのリンクを確認します、ありがとう。
ゼンクリス

6
  • いや
  • いや
  • はい

簡単に言えば、データベースのRAMとIOのパフォーマンス(レイテンシ+読み取り速度+書き込み速度)が必要です。

4または6コアまたは2.5 GHz対3 GHzの選択はあまり関係ありません(32 GB RAMのP3-450または1GB RAMの最新のXeonを選択する必要はないと思います)。

CPUに縛られている場合、他の問題(貧弱なデザイン、貧弱なインデックス、スワッピング、非専用サーバーなど)があります。


答えてくれてありがとう。その場合、SSDは良い選択ですか?CPU電力を超えていますか?
ゼンクリス

@Zenklys:言いにくい。どんなサイズのデータ​​ベースがありますか?ボリュームを書き込みますか?読み込み読み込み?OLTPまたはOLAP?など
gbn

最大20〜30 GB。10対1の読み取り/書き込み比、小さなデータのみ、OLTP。
ゼンクリス

2
@Zenklys:その場合、それは実際には重要ではありません。できるだけ多くのデータがキャッシュされるように、特にMySQL用にRAMを購入するだけです
-gbn

3
なぜこれが受け入れられた答えなのかわかりません。アプリケーション、作業負荷、またはデータセットのサイズを考慮しないため、単純です。@kgrittnは、実世界の経験に基づいたより良い回答と、Postgresの動作理論のより良い把握を提供しました。
-dbenhur
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.