web-dev-qa-db-ja.com

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

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

  1. ロードバランサー、
  2. 複数/スケーラブルなアプリケーションサーバー
  3. A (single) database server (for the moment)

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

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

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

33
Zenklys

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

PostgreSQLはプロセスベースであるため、単一のプロセスは1コアしか実行できませんが、前述のサーバーでのようなミックスでは、大量の小さなリクエストがあり、すべてのコアの合計CPUが最も重要です。合計CPUパワーが同じ場合、PostgreSQLは一般に、多くの低速コアよりも少数の高速コアの方が優れています。

アクティブなデータセットの高い割合がキャッシュされるところまでは、RAMを追加すると、通常、コアを追加するよりもコストが高くなります。十分なキャッシュが得られたら、追加のRAMがダウンし、CPUパワーを上げる方がよいでしょう。

PostgreSQLに関連するこのトピックの詳細については、 PostgreSQL 9.0 High Performance by Gregよりも優れたソースはないと思いますスミス。 (完全な開示、私はこの本の技術レビュアーでしたが、売上高に基づく経済的利益は得られません。)

29
kgrittn

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

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

より高速なCPUとマザーボードは素晴らしいですが、他のボトルネックが邪魔になる場合があります。そのようなボトルネックは次のとおりです。

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

すべての小さな利点は役立ちますが、CPU速度自体は前述のボトルネックを改善しないため、私はNoと言わなければなりません。結局のところ、F1レースカーはオープンパラシュートを着用したり、800ポンドのゴリラを操縦して何ができるでしょうか。

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

これは、実行しているMySQLのバージョンに完全に依存します。 MySQL 5.1 InnoDBプラグイン、MySQL 5.5、Percona ServerのXtraDBにはすべて設定があります YOU MUST PROPERLY CONFIGURE to get InnoDB to access all cores。これを行う本当の動機は、過去の記事で説明したように、MySQL LEFT UNCONFIGUREDの一部の古いバージョンが新しいバージョンよりも高速であるという事実に由来します。

したがって、すべてのCPUにアクセスするようにInnoDBを設定するつもりがない場合は、複数のコアを使用しても何も購入されません

RAM CPUよりも重要ですか?

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

これらのものとMySQLの任意の組み合わせのリクエストが少なすぎるか多すぎると、あなたに噛み付きます。 RAMに不適切に設定されたMySQLを搭載した高速のCPUは、MySQLをより速く噛みます。

23
RolandoMySQLDBA
  • 番号
  • 番号
  • はい

簡単に言えば、データベースのRAMおよびIOパフォーマンス(待機時間+読み取り速度+書き込み速度))が必要です。

4コアまたは6コア、または2.5 GHzと3 GHzのどちらを選択するかは、実際には関係ありません(32 GBのP3-450 RAMまたは1GB RAM)。

CPUバウンドの場合は、他の問題があります(設計が悪い、インデックスが不十分、スワッピング、非専用サーバーなど)。

6
gbn