これは純粋に理論的な質問です。アプリケーションが複数のサーバーにデプロイされているとしましょう。
最初の2つの部分では、何を探すべきかわかります。しかし、データベースサーバーはどうでしょうか?どのようなハードウェアを探すべきですか?
PS:選択したデータベースがMySQLまたはPostgreSQLであるとします。
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よりも優れたソースはないと思いますスミス。 (完全な開示、私はこの本の技術レビュアーでしたが、売上高に基づく経済的利益は得られません。)
厳密にMySQLの観点から、それは非常に負荷の高い質問です
データベースサーバーに関連するCPU周波数?
より高速なCPUとマザーボードは素晴らしいですが、他のボトルネックが邪魔になる場合があります。そのようなボトルネックは次のとおりです。
すべての小さな利点は役立ちますが、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をより速く噛みます。
簡単に言えば、データベースのRAMおよびIOパフォーマンス(待機時間+読み取り速度+書き込み速度))が必要です。
4コアまたは6コア、または2.5 GHzと3 GHzのどちらを選択するかは、実際には関係ありません(32 GBのP3-450 RAMまたは1GB RAM)。
CPUバウンドの場合は、他の問題があります(設計が悪い、インデックスが不十分、スワッピング、非専用サーバーなど)。