web-dev-qa-db-ja.com

ベアメタル16x 2.93GHzコアコンピューターのパフォーマンスが4x 2.5GHzコアのVPSよりも低いのはなぜですか?

私は、1日に多くのシミュレーションを行うマルチスレッドソフトウェアを作成しました。これは非常にCPUを集中的に使用するタスクであり、私はこのプログラムを通常1コアあたり1GBのような構成でクラウドサービス上で実行しています。

私は実行しています CentOS 6.7、および/proc/cpuinfo私の4つのVPSコアは2.5GHzです。

processor       : 3
vendor_id       : GenuineIntel
cpu family      : 6
model           : 63
model name      : Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz
stepping        : 2
microcode       : 1
cpu MHz         : 2499.992
cache size      : 30720 KB
physical id     : 3
siblings        : 1
core id         : 0
cpu cores       : 1
apicid          : 3
initial apicid  : 3
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc Arch_perfmon rep_good unfair_spinlock pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm arat xsaveopt fsgsbase bmi1 avx2 smep bmi2 erms invpcid
bogomips        : 4999.98
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

為替レートの上昇に伴い、私のVPSはより高価になり始め、使用済みのベアメタルサーバーについては「すごい取引」ができました。

HP DL580 G5 を4つ購入しました。それぞれ4つのIntel Xeon X7350を搭載しています。基本的に、各マシンには16x 2.93GHzコアと16GBがあり、私の [〜#〜] vps [〜#〜] クラウドのようなものを維持します。

processor       : 15
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Xeon(R) CPU           X7350 @ 2.93GHz
stepping        : 11
microcode       : 187
cpu MHz         : 1600.002
cache size      : 4096 KB
physical id     : 6
siblings        : 4
core id         : 3
cpu cores       : 4
apicid          : 27
initial apicid  : 27
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall lm constant_tsc Arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca lahf_lm dts tpr_shadow vnmi flexpriority
bogomips        : 5866.96
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

これらのバッチ処理を実行するためにVPSの使用をやめることができたので、本質的にはかなりのように見えました。今は奇妙なものです...

  1. VPSでは、ベアメタルで実行していたのと同じように、コアあたり1.25スレッドを実行しています。 (追加の0.25スレッドは、ネットワークの使用によって引き起こされるアイドル時間を補正するためのものです。)
  2. 合計44x 2.5GHzコアを使用する私のVPSでは、毎分900近くのシミュレーションが得られます。
  3. 合計64x 2.93GHzコアを使用するDL580では、毎分300シミュレーションしか取得できません。

DL580のプロセッサが古いことを理解しています。しかし、コアごとに1つのスレッドを実行していて、ベアメタルサーバーのコアの方が速い場合、なぜVPSよりもパフォーマンスが悪いのですか?

どのサーバーでもメモリスワップが発生していません。

TOPは私のプロセッサーが100%で動いていると言います。平均負荷は18(VPSでは5)です。

これはこのようになるのでしょうか、それとも何か不足していますか?

Lscpuを実行すると、ベアメタルサーバーで1.6GHzが得られます。これは/proc/cpuinfo 同じように。

この情報は正しいですか、それとも誤った電源管理にリンクされていますか?

[BARE METAL] $ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                16
On-line CPU(s) list:   0-15
Thread(s) per core:    1
Core(s) per socket:    4
Socket(s):             4
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 15
Stepping:              11
**CPU MHz:               1600.002**
BogoMIPS:              5984.30
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              4096K
NUMA node0 CPU(s):     0-15


[VPS] $ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    1
Socket(s):             4
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 63
Stepping:              2
**CPU MHz:               2499.992**
BogoMIPS:              4999.98
Hypervisor vendor:     KVM
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              30720K
NUMA node0 CPU(s):     0-3
34

プロセッサの進歩、クロック速度、およびIPC計算により、10年前のCPUと最新のCPUを合理的に比較することはほぼ不可能になります。サイクルごとの命令が変化するだけでなく、新しいプロセッサには命令があります複雑な計算専用のセット(インテルは例としてAES-NIを追加しました)、これらの要因により、クロック速度はもはや妥当なコンパレータではありません(マルチコアvsハイパースレッディングについて言及しました...)。十分な時間と忍耐力で、古いprocの数が1の新しいprocに等しいことは確かにわかりますが、計算は結局、新しいCPUを購入する方が安くて速いと言います。

44
Jim B

ここで明らかなすべきことを強調することによってひどく聞こえたくないが、あなたは 2014年のハイエンドサーバープロセッサ を比較しているa 2007 のハイエンドサーバープロセッサ。

これ以上の説明は必要ないと思います。

HP ProLiant DL580 G5 が利用可能である理由はあります とても安価な今日 。それらは大きく、速度が遅く、より最近のサーバーに望ましい多くの機能がありません。私は 2009年の最後のもの を売りました。これは不適切な購入でした。中古機器の購入を余儀なくされた場合は、NehalemまたはWestmere CPUファミリのCPUを使用するほうがよいでしょう。

また、購入したサーバーは消費電力の点で非常に非効率的であるため、運用コストが高くなります。


物理サーバーが省電力モードで実行されているように見え、CPUクロック速度を縮小しました。 BIOSに入り(ブート時にF9を押す)、サーバーを工場出荷時のデフォルトにリセットする必要があります(だれがデフォルトから変更されたものを知っていますか?

enter image description here

32
ewwhite