Linux Find Out CPU Architecture Information

Posted on in Categories , , , , , last updated June 13, 2017

How do I find out my CPU architecture information under Linux operating systems using the command line?

You can use the /proc/cpuinfo file or use the lscpu command to get info about CPU architecture. It will display information like:

  • Number of CPUs
  • Threads
  • Cores
  • Sockets
  • NUMA nodes
  • Information about CPU caches,
  • CPU family, model and stepping.
  • in human-readable format. Alternatively, it can print out in parsable
  • format including how different caches are shared by different CPUs,
  • which can also be fed to other programs.

Open a terminal and type the following command:
$ less /proc/cpuinfo
Sample outputs:

Fig.01: /etc/cpuinfo is a collection of CPU and system architecture dependent item on Linux
Fig.01: /etc/cpuinfo is a collection of CPU and system architecture dependent item on Linux

$ lscpu
Sample outputs:

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                8
On-line CPU(s) list:   0-7
Thread(s) per core:    2
Core(s) per socket:    4
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 58
Model name:            Intel(R) Core(TM) i7-3840QM CPU @ 2.80GHz
Stepping:              9
CPU MHz:               1206.201
CPU max MHz:           3800.0000
CPU min MHz:           1200.0000
BogoMIPS:              5581.50
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              8192K
NUMA node0 CPU(s):     0-7
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts

Where,

  1. Architecture: The architecture of your CPU. In this case, it is x86_64 (AMD64).
  2. CPU : The logical CPU number of a CPU.
  3. CACHE : Information about how caches are shared between CPUs i.e. L1/L2/L3 cpus.

Related media

You can see the lscpu command output using the following video:

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

13 comment

    1. Tapas,

      If [lscpu] does not exist for your distribution, you can always create a shell alias to create a shortcut of the following command

      alias lscpu=”/bin/cat /proc/cpuinfo|/bin/grep -E ‘processor|model name|cache size|core|sibling|physical'”

      Then afterwards, you can use this command anywhere.
      Just add it to your personal Bash customization startup file, located into your home directory, namely [ ~/.bashrc ] or sometimes specific included file [ ~/.bash-aliases ].

      Have fun !

      1. Philippe,

        Useless use of cat???

         
        alias lscpu=”/bin/grep -E 'processor|model name|cache size|core|sibling|physical' /proc/cpuinfo”
        

        Tapas,

        lscpu command available on latest version of Ubuntu, Debian, RHEL 6 and above.

  1. “Useless use of cat?”

    Yeah, quite right, of course.

    alias lscpu=’/bin/grep -E “processor|model name|cache size|core|sibling|physical” /proc/cpuinfo’

    This will do the trick!

    1. Appreciate your comment, but a vanilla grepping of /proc/cpuinfo with specified fields are not enough to get lscpu like detailed output. Its lacking of “Number of Physical CPU, Core per CPU, Threads in each Core, L1/D1/D3 Cache size, CPU Mode, Virtualization Technology Used, NUMA Node ID”. Of course bit sophisticated grepping/sorting/uniq on /proc/cpuinfo with generate the required output, still precompiled version of lscpu will be a great add-on for systemadmins.

  2. Vivek-

    how we can check processor types like (dual core ,quadcore ) in linux mechine
    suppose my cpuimfo out put like Intel Xeon(R) CPUX5355 @ 2.66GHz how i know this is dualcore or quad core processor ?

  3. as a c++ guy, I’m trying to get my barecomputer_o (Vettrasoft Z Directory object)
    working on Debian linux – is there a [c function] OS API to get CPU info? I can
    fork()/exec() or do system(“lscpu > /tmp/somefile”) and do a bunch fo grunt
    Quick&Dirty hacking, not elegant
    In microsoft-land, I use a combo of __cpuid (CPUInfo, 0); and embedded assembler,
    eg,

    #if zos_MSWindows
        __asm
        {
            mov     eax,    1
            cpuid
            mov     EAXBuf, eax     // version
            mov     EBXBuf, ebx     // brand idx, max # CPUs
            mov     ECXBuf, ecx     // extended feature info
            mov     EDXBuf, edx     // feature info
        }
    #endif
        m_SteppingID = EAXBuf & 0x0000000F;
        m_Model      = EAXBuf & 0x000000F0;
        m_FamilyID   = EAXBuf & 0x00000F00;
        m_Model    >>= 4;
        m_FamilyID >>= 8;
        // etc etc.
    

Leave a Comment