Escribí una pieza de software multiproceso que realiza muchas simulaciones al día. Esta es una tarea muy intensiva de CPU, y he estado ejecutando este programa en servicios en la nube, generalmente en configuraciones como 1 GB por núcleo.
Estoy ejecutando CentOS 6.7, y /proc/cpuinfo
me da que mis cuatro núcleos VPS son 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:
Con un aumento de los tipos de cambio, mi VPS comenzó a ser más costoso, y he llegado a un "gran acuerdo" en los servidores de metal desnudo usados.
Compré cuatro HP DL580 G5 , con cuatro Intel Xeon X7350 cada uno. Básicamente, cada máquina tiene 16x núcleos de 2.93GHz y 16GB, para mantener cosas como mi nube 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:
Esencialmente, parecía mucho, ya que podía dejar de usar VPS para realizar estos trabajos por lotes. Ahora son las cosas raras ...
- En los VPS, he estado ejecutando 1.25 hilos por núcleo, tal como lo he estado haciendo en el metal desnudo. (El hilo adicional de 0.25 es para compensar el tiempo de inactividad causado por el uso de la red).
- En mi VPS, usando un total de 44x núcleos de 2.5GHz, obtengo casi 900 simulaciones por minuto.
- En mi DL580, usando un total de 64x 2.93GHz núcleos, solo obtengo 300 simulaciones por minuto.
Entiendo que el DL580 tiene un procesador más antiguo. Pero si estoy ejecutando un subproceso por núcleo y el servidor bare metal tiene un núcleo más rápido, ¿por qué funciona peor que mi VPS?
No tengo ningún cambio de memoria en ninguno de los servidores.
TOP dice que mis procesadores funcionan al 100%. Tengo una carga promedio de 18 (5 en VPS).
¿Va a ser así o me estoy perdiendo algo?
Ejecutar lscpu me da 1.6GHz en mi servidor de metal desnudo. Esto se vio en el /proc/cpuinfo
también.
¿Es correcta esta información o está vinculada a una administración de energía incorrecta?
[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