プロが教える店舗&オフィスのセキュリティ対策術

MySQLに良いCPUスペックは?

MySQL専用にサーバーを稼動させていますが、スペックの良いサーバーに変えようと思います。
ただ、「MySQLは1プロセスで動作するので、CPUのコア数が多くしても効果が出ない」と聞いた気がしますが、本当でしょうか?
確かに、現在MySQL専用に使っているサーバーでは、CPU使用率が一つのCPUのみに偏って高くなっています(CPUを使い切れば均等になるのかもしれませんが、実際の使用感は重いです)。

通常の用途で考えるとコストパフォーマンスは悪くなりますが、1コア1CPUでなるべく高いスペックのCPUのサーバーを探すべきでしょうか? いまどきマルチコアでないサーバーもなかなかないのでは…?

ちなみに現在の利用環境は、
  CentOS 5
  MySQL 5.0
です。

A 回答 (3件)

MySQLはマルチスレッドプログラムですので、同時並列で処理できる処理に関しては、使えるCPUの数が多ければ多いほど性能は上がります。



ただし、1つのクエリを処理するのは1スレッドなので、1つのクエリの処理性能は1つのCPUコアの性能に依存します。

なので、Webアプリのような同時並列で多数のクエリを処理することを求められるサーバーならCPUコアの多いサーバーのほうが有利になりますし、バッチ処理のような計算量の多いクエリがいくつか実行するだけならCPUコア1つあたりの処理能力の高いサーバーが有利になります。

実際には、CPUの処理性能よりDisk I/Oの性能がボトルネックになることが多いので、まずは何がボトルネックになっているのかちゃんと現状を把握してからサーバーを変えたほうが良いでしょう。
    • good
    • 0
この回答へのお礼

よく分かりました!ありがとうございました。
DiskI/Oについて検討してみます。

お礼日時:2010/04/01 13:22

Centには詳しくないですが、よくFreeBSDのマルチコアのスコアを


だすときにMySQLを利用したりしますね。
私の記憶がただしければオクトコアまでは、普通に比例して
スピードがあがっていたような・・・
    • good
    • 0
この回答へのお礼

なるほど。。つまり「MySQLでマルチコアのCPU処理速度の評価をしているので、MySQLはマルチコアで能力が高まるはず」、ということですね。
ありがとうございました。

お礼日時:2010/04/01 13:24

> MySQLは1プロセスで動作するので、CPUのコア数が多くしても効果が出ない


間違っています。
MySQLマルチスレッド(http://dev.mysql.com/doc/refman/5.1/ja/what-is-m …)対応です。マルチコアの方が性能を引き出せます。

> CPU使用率が一つのCPUのみに偏って高くなっています
それは、MySQLを利用しているアプリケーションがシングルスレッドなのではありませんか?

この回答への補足

早速のご回答ありがとうございます。

>間違っています。MySQLマルチスレッド対応です。

マルチスレッドなのは存じてますが、シングルプロセスなのが気になっていました。マルチスレッドであれば、シングルプロセスなのは関係なくマルチCPUの効果を出せるということでしょうか?
(別件ですが、今自分で気づきましたが、私はマルチコアとマルチCPUを区別してませんでした。ただ、この質問では、ここを厳密に区別する必要はないかな、と勝手に思ってます。)

>MySQLを利用しているアプリケーションがシングルスレッドなのではありませんか?

当方の環境では MySQLしか動作していないサーバー筐体を前提としていますので、ご懸念は当てはまりません。Webサーバー(MySQLを利用するアプリケーション)は別の筐体で動作しています。

補足日時:2010/03/23 16:13
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す