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:
You should follow me on twitter here or grab rss feed to keep track of new changes.
Featured Articles:
- 30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X
- Top 30 Nmap Command Examples For Sys/Network Admins
- 25 PHP Security Best Practices For Sys Admins
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- Linux: 20 Iptables Examples For New SysAdmins
- Top 20 OpenSSH Server Best Security Practices
- Top 20 Nginx WebServer Best Security Practices
- 20 Examples: Make Sure Unix / Linux Configuration Files Are Free From Syntax Errors
- 15 Greatest Open Source Terminal Applications Of 2012

- My 10 UNIX Command Line Mistakes
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- The Novice Guide To Buying A Linux Laptop












{ 12 comments… read them below or add one }
/proc/cpuinfo
is this file dynamically generated or cached ?
can we edit this file ?
Thanks !
No you cannot edit this file.
Some more info: http://www.richweb.com/cpu_info
is “lscpu” available for redhat and its variants ? It is really a cool command/tool to have with all Linux System Administrator.
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 !
Philippe,
Useless use of cat???
Tapas,
lscpu command available on latest version of Ubuntu, Debian, RHEL 6 and above.
“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!
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.
Really helpful commands.
thankz for the article…i was searching for this…
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 ?
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.