0

I have two machines and I am trying to see which one is more powerful machines. I can check memory and cpu but not sure how to understand other things from lscpu:

Here is machineA "lscpu" result:

david@machineA:~$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                40
On-line CPU(s) list:   0-39
Thread(s) per core:    1
Core(s) per socket:    1
Socket(s):             40
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 62
Stepping:              4
CPU MHz:               2499.998
BogoMIPS:              4999.99
Virtualization:        VT-x
Hypervisor vendor:     KVM
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              25600K
NUMA node0 CPU(s):     0-39

Now here is machineB "lscpu" result:

david@machineB:~$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                32
On-line CPU(s) list:   0-31
Thread(s) per core:    2
Core(s) per socket:    8
Socket(s):             2
NUMA node(s):          2
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 45
Stepping:              7
CPU MHz:               2599.865
BogoMIPS:              5199.95
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              20480K
NUMA node0 CPU(s):     0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30
NUMA node1 CPU(s):     1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31

What is the main difference between these two machines? Basically I want to see which one is more powerful and also compare them with Disk Capacity/RAM like which machines has more disk capacity and RAM as well.

1

On machine A you're running inside a KVM VM, so you'll only see what the VM was configured with. The underlying CPU is a Xeon E5-2650v2 with a base frequency of 2.6GHz (family 6, model 62).

On machine B you're running on the bare metal. The CPU is a Core i7-3960X with a base frequency of 3.3GHz (family 6, model 45).

You can compare the CPU characteristics on Intel's web site, but it's difficult to establish which is better without knowing your workload: the i7 is older, but has a higher base frequency, whereas the E5 has more efficient cores and more of them.

(lscpu shows you the CPU speed at the time you run it, which doesn't say much about the actual capabilities of the processor.)

As far as memory and disk is concerned, you need to run free and df -h (and perhaps lsscsi if it's installed) to determine that information.

5
  • Thanks Stephen. Do you know what does this line mean? Thread(s) per core: and Core(s) per socket:. I see a big difference in the above two machines. – david Aug 6 '15 at 22:45
  • Cores per socket is the number of cores in each CPU, and threads per core is 2 if hyperthreading is supported and enabled. In the KVM case you're only seeing one because that's presumably what's configured in the VM. – Stephen Kitt Aug 6 '15 at 23:20
  • +1 for mentioning the KVM VM: is the number of threads/core how you deduced the machine was running inside a KVM? I wish I could upvote twice for you providing this. I should have thought about that too... ;-) – Fabby Aug 7 '15 at 8:57
  • @Fabby Hypervisor vendor: KVM in the lscpu output ;) – Stephen Kitt Aug 7 '15 at 10:40
  • @StephenKitt :D I missed that entirely! (even after reading it twice! Thanks! – Fabby Aug 7 '15 at 11:23
2

What you're asking is the same kind of question as "Which is the better car? A Lotus Elise or a Corvette?

Well, that depends entirely on your personal use-case! The Elise is a noisy, seemingly uncomfortable car with a small 1.8L engine that only does 127mph, whereas the Corvette is a less noisy car, comfortable, with a 6.2L engine that does 199mph.

In the case of your CPUs: the first one one is an 8-core, 2.6 GHZ, ECC memory with 25MB L3 cache and 59.7 GB/s bus speed whereas the second one which is a 6-core, 3.3GHZ, 20MB L3 Cache, 51.2GB/s bus speed processor.

So if you run very little multi-threaded applications and want individual applications to run at their maximum speed, take CPU2 (highest individual speed), but if you need massive multi-threaded computing speed, take CPU1 (more total speed).

Edit: Now that you've provided the use-case: CPU#1 would IMHO provide a slightly better increase (14%-19% estimated maximum) if your application is running on that machine on the pure bare metal and your application doesn't use any disk access once it's running. Otherwise, the performance increase will be limited by your disk speed increase (not provided) and you should revise the speed increase downwards.

I would buy the Lotus in a jiffy as it's much more fun!

3
  • Yes I should have stated my use case. Sorry about that. My use case mainly involves getting the data out of memory and also getting the data out of disk. And it's a pretty heavy multithreaded application. Basically we will be running our C++ app server on these boxes in which we will load data in memory and also we will have memory mapped files on SSD's. And then people will call this app server to get the data. Sometimes it will get the data from memory if we have it otherwise it will get the data from disk. – david Aug 6 '15 at 22:49
  • Please edit your question and add this relevant information there. – Fabby Aug 7 '15 at 8:27
  • 1
    For me the Corvette please ;) – A.B. Aug 13 '15 at 17:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.