Linux Find Out CPU Architecture Information

Posted on in Categories , last updated June 26, 2012

How do I find out my CPU architecture information under Linux operating systems?

You can use /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
OR
$ lscpu
Sample outputs:

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
CPU(s):                8
Thread(s) per core:    2
Core(s) per socket:    4
CPU socket(s):         1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 30
Stepping:              5
CPU MHz:               1199.000
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              8192K

OR see lscpu output using the following video:

13 comment

  1. is “lscpu” available for redhat and its variants ? It is really a cool command/tool to have with all Linux System Administrator.

    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.

  2. “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.

  3. 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 ?

  4. 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.
    
  5. Its cant Editable Proc will get created while the system boots every time in RAM , U can create it manually if your Root User

Leave a Comment