Windowsサーバー（2016）にXeonのCPUを搭載します。

その際、例えば安価なCPUを2個搭載する場合と、高価なCPU1個を搭載する場合では、どのようなメリット・デメリットがあるでしょうか。

安価な2コアのCPUを2個搭載する場合 ⇒ 2コア×2CPU=4コア  
高価な4コアのCPUを1個搭載する場合 ⇒ 4コア×1CPU=4コア

上記のような場合どちらにどのようなメリット・デメリットがあって、どちらを選ぶべきか、考え方を教えて下さい。  
安価でもCPUを2個搭載した方が、1個故障した場合の対策にもなると思いますが、高価なCPUには高いなりの理由があるのではと思います。

安価・高価とは言ってもそれぞれどれくらいのスペックの話なのか、というご意見はあるかと思いますが、一般的な選定の考え方をアドバイス頂きたいです。

要件、予算がある程度決まっている場合に、自分ならどんな手順で搭載するCPUを決めていくか、という想定でご意見いただければと思います。
CC BY-SA 4.0
2019-07-19T06:47:00.237
56743
2019-07-19T15:17:57.500
2019-07-19T07:01:08.287
3060
34725
question
windows ハードウェア
サーバーに搭載するCPUの選定の仕方を教えて下さい
何サーバに使うか (Web / DB / FileSystem / AP) によって優先順位が変わります。

計算能力が必要な機械であるなら CPU を検討するでしょうが、だいたいにおいて「サーバ」に計算能力が求められることは少なく、むしろ I/O
性能と障害耐性が求められます。なので金をかけるべきは周辺装置のほうで、用途要望次第で SSD だの RAID6 だの D2D2T
だのの検討が必要です。この辺の装置をまともに揃えると CPU なんぞよりよっぽど高価です。お金かけるべきところを間違っていませんか？

* * *

今回は CPU の選び方に限定してくれという依頼であると解釈して：

オイラならディスク装置→バックアップ装置→主記憶容量→ の順に予算を振って、残った額でマザーボード→ CPU
の順に決めます。つまり「あまり選択の余地はない」ってこと。

  * 物理 CPU を１つにするか複数にするか

（ファン以外に）可動部がないので CPU が壊れることはまれです。障害耐性って点から見ると CPU ２個の SMP 構成はとても魅力的なのですが SMP
可能なマザーボードは下手すると CPU より高価だったりします。なので予算があれば SMP つまり２個以上構成、予算が厳しいなら物理 CPU
１個にして他に振ります。

つまり

  * ほとんどの場合、物理 CPU は１つで十分っす。
  * 予算が余ったのなら物理 CPU を２つ以上にするのはとても良い選択肢です。
  * ３個以上の SMP ができるマザーボードは超レアで障害発生時に手配が困難だったりするので、実用上は物理 CPU ２個に落ち着きそうです。

意外なところで Oracle のライセンス料金が物理 CPU 数とマルチコア係数で決まるので Oracle DB
を使うか否かで選び方が変わることがあります。

  * 高価な CPU と安価な CPU とどっちがいい？

障害発生の可能性という面では可動部が無いので大差ないと考えてよいです。いざ障害発生したときに

  * 手配→ブツ到着までの時間がどれだけかかる？
  * そもそもいつまで供給サポートしてくれる？

あたりから決めてよいです。採用前に約款や契約の内容をきっちり確認。
CC BY-SA 4.0
2019-07-19T07:32:28.243
56744
2019-07-19T09:34:46.607
2019-07-19T09:34:46.607
8589
8589
56743
answer
> 安価でもCPUを2個搭載した方が、1個故障した場合の対策にもなると思いますが、

なりません。2wayは冗長構成ではないので、障害点が増えるのでかえってリスクは高まります。CPUが全く認識されなくなれば起動し直せば例えば2way->1wayで動くかもしれませんが、中途半端に壊れた場合、自分でどちらが壊れているのか調べて切り離さないと、システムは不安定なままです。

CPUは高負荷環境だと割と壊れます。サーバ用プロセッサが最先端ではない半導体プロセスで作られるのはこれも理由の一つです。

* * *

一般的なサーバ選択では基本2ソケットのモデルになるはずですので、1wayにするか2wayにするかは大抵自由に選択できますし、普通最初に検討します。

以前のCPUはプロセッサの先にチップセットがつながり、その先にメモリやIOがぶら下がっていました。しかし最近(といってもそうなってずいぶんたちますが)のCPUは、メモリやIOがCPUから直接生えています。2wayのシステムのうち1つのCPUの視点で見ると、システム全体のリソースのうち半分は自分につながっているが、残り半分はもう一つのCPU経由でやりとりする必要があるということです。(詳しくはNUMAで検索)

たとえば、仮想基盤のように少数のコア単位で分割される独立した多数のワークロードがあるシステムでは、同じコア数でも、1wayより2wayにした方がよいです。単純にメモリやIOが分散されるので。逆に、多数のコアで動くスレッドが同じリソースにアクセスするようなワークロードだと、2wayにした場合プロセッサ間通信がペナルティになります。

また、シングルスレッド性能が要求される場合、同じコア数でも1wayより2wayにした方がよい場合があります。これは、

  * コア数が少ないが定格動作周波数が高いモデルがある。例えば、3.0GHz 16コアより、3.5GHz 8コア×2の方を選ぶほうがよい場合もある。
  * インテルで言うところのTurbo boostが使えるかはCPUあたりの負荷が影響するので、同一負荷なら2wayに分散したほうが最大動作周波数で動きやすい。

ことによります。

あと、メモリの必要枚数に注意が必要です。プロセッサによって4枚とか6枚単位で実装しないと性能が出ません。6チャネルのプロセッサなら、2wayにすると最低12枚必要になります。逆に、12枚実装する前提であれば、2wayで2×6チャンネルを有効に使う方がよい場合もあります。

ということで、きちんと設計しないと必要なパフォーマンスがでないとか無駄な投資になるとかそういうことになります。以前はCPUも単純に「高ければ速い、2個積めば倍」だったのでいい加減でも割と問題にならなかったのですが、今時はいい加減だと失敗します。

* * *

性能以外の観点では、コア数・プロセッサ数でライセンスを数えるソフトウェアに注意が必要です。Oracleは特に有名ですが、それ以外にも多いので気をつけてください。最近は普通まずWindowsのライセンスが問題になります。
CC BY-SA 4.0
2019-07-19T15:17:57.500
56755
2019-07-19T15:17:57.500
5793
56743
answer