cpu相关信息(进程、线程、核...)

cpu的相关信息。

1、cpu

  1.1 物理cpu

    实际Server中插槽上的CPU个数。物理cpu数量,可以数不重复的 physical id 有几个

    1.1.1 查看物理CPU的个数

    cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l

  1.2 逻辑cpu

    Linux用户对 /proc/cpuinfo 这个文件肯定不陌生. 它是用来存储cpu硬件信息的。信息内容分别列出了processor 0 – n 的规格。这里需要注意,如果你认为n就是真实的cpu数的话, 就大错特错了。一般情况,我们认为一颗cpu可以有多核,加上intel的超线程技术(HT), 可以在逻辑上再分一倍数量的cpu core出来。逻辑CPU数量=物理cpu数量 x cpu cores 这个规格值 x 2(如果支持并开启ht) 。

    备注一下:Linux下top查看的CPU也是逻辑CPU个数

    1.2.1 查看逻辑CPU的个数

   cat /proc/cpuinfo |grep "processor"|wc -l 

  1.3 核数

    一块CPU上面能处理数据的芯片组的数量、比如现在的i5 760,是双核心四线程的CPU、而 i5 2250 是四核心四线程的CPU。

一般来说,物理CPU个数×每颗核数就应该等于逻辑CPU的个数,如果不相等的话,则表示服务器的CPU支持超线程技术。

    1.3.1  查看CPU是几核  

   cat /proc/cpuinfo |grep "cores"|uniq

  1.4 决定CPU的性能的几大要素:架构,缓存,频率,线程数,核心数。

    下面讲线程与进程的区别

2、线程与进程

  什么是进程?

    进程就是正在执行的程序

  什么是线程?

    1)轻量级的进程

    2)进程有独立的地址空间。线程没有

    3)线程不能独立存在,她是由进程创建的(fork)Thread

    4)相对讲,线程消费的cpu和内存小于进程

3、之间的关系

  cpu可以有多个核,如:单核,双核,三核等

  一个核可以有多个进程

  一个进程必选有一个或者多个线程

4.总结

  cat /proc/cpuinfo中的信息

  • processor       逻辑处理器的id。
  • physical id    物理封装的处理器的id。
  • core id        每个核心的id。
  • cpu cores      位于相同物理封装的处理器中的内核数量。
  • siblings       位于相同物理封装的处理器中的逻辑处理器的数量。


  1 查看物理CPU的个数

    #cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc –l

  2、   查看逻辑CPU的个数
    #cat /proc/cpuinfo |grep "processor"|wc –l

  3、  查看CPU是几核
    #cat /proc/cpuinfo |grep "cores"|uniq

  4、  查看CPU的主频
    #cat /proc/cpuinfo |grep MHz|uniq

  5、 查看当前操作系统内核信息

   # uname -a

    Linux euis1 2.6.9-55.ELsmp #1 SMP Fri Apr 20 17:03:35 EDT 2007 i686 i686 i386 GNU/Linux

  7、 查看当前操作系统发行版信息

  # cat /etc/issue | grep Linux

    Red Hat Enterprise Linux AS release 4 (Nahant Update 5)

  8、CPU型号

  # cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

  Intel(R) Xeon(R) CPU   E5410   @ 2.33GHz

  (看到有8个逻辑CPU, 也知道了CPU型号)

9

  # cat /proc/cpuinfo | grep physical | uniq -c

    4   physical id      : 0

    4   physical id      : 1

    (说明实际上是两颗4核的CPU)

    # 其实是可能有超线程HT技术,不一定是有4核,也可能是2核4线程;还理解不清楚

  10

  # getconf LONG_BIT

   32

   (说明当前CPU运行在32bit模式下, 但不代表CPU不支持64bit)

  11、

  # cat /proc/cpuinfo | grep flags | grep ‘ lm ‘ | wc –l

    8(结果大于0, 说明支持64bit计算. lm指long mode, 支持lm则是64bit)

  12、如何获得CPU的详细信息:

    linux命令:cat /proc/cpuinfo

  13、是否为超线程?如果有两个逻辑CPU具有相同的”core id”,那么超线程是打开的。每个物理CPU中逻辑CPU(可能是core, threads或both)的个数:

    # cat /proc/cpuinfo | grep "siblings"

注:

1.查看CPU信息命令

cat /proc/cpuinfo

2.查看内存信息命令

cat /proc/meminfo

3.查看硬盘信息命令

fdisk -l

/proc下的文件很强大,还在研究中!!!

http://www.cnblogs.com/lliqiang/p/4143927.html

推荐一下这边关于进程的,这2货写的不错!

时间: 2024-08-30 01:20:05

cpu相关信息(进程、线程、核...)的相关文章

CPU相关信息

unit untCpuInfo; interface { 获取 CPU 制造商 }function GetCpuFactory: String; { 获取 CPU 家族系统 }function GetCpuFamily: Cardinal; { 获取 CPU 型号 }function GetCpuModel: Cardinal; { 获取 CPU 步进 }function GetCpuStepping: Cardinal; { 获取 CPU 名称 }function GetCpuName: St

借助Sigar API获取CPU相关信息

Sigar(全称System Information Gatherer And Reporter,即系统信息收集报表器),它提供了一个开源的跨平台的收集计算机硬件和操作系统信息的API(该API底层接口用C语言编写),本文将演示如何借助Sigar API获取CPU相关信息: package com.ghj.packageoftest; import org.hyperic.sigar.Cpu; import org.hyperic.sigar.CpuInfo; import org.hyperi

cpu相关信息查看

查看CPU型号:grep "model name" /proc/cpuinfo | uniqdmidecode -s processor-version | uniq 查看物理CPU个数grep "physical id" /proc/cpuinfo | sort -u | wc -lgrep "physical id" /proc/cpuinfo | uniq | wc -l 查看CPU核心数grep "core id" /

Linux下查看CPU相关信息

相关概念 物理CPU总核数 = 逻辑CPU总核数 = 物理CPU个数 * 每颗物理CPU的核数 (没有超线程时) 逻辑CPU总核数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数 (有超线程时) 物理CPU:实际上服务器插入的CPU个数,在/proc/cpuinfo文件中有几个"physical id"就代表有几个物理CPU. 逻辑CPU:操作系统可以使用逻辑CPU来模拟出真实CPU的效果,在之前没有多核处理器的时候,一个CPU只有一个核,而现在有了多核技术,其效果就好像把

Linux CPU相关信息查看

linux 下查看机器是cpu是几核的 几个cpu more /proc/cpuinfo |grep "physical id"|uniq|wc -l 每个cpu是几核(假设cpu配置相同) more /proc/cpuinfo |grep "physical id"|grep "0"|wc -l cat /proc/cpuinfo | grep processor 1. 查看物理CPU的个数#cat /proc/cpuinfo |grep &q

一个可以获取linux 系统硬件相关信息的类

<?php  class CServerInfo {     static public function getCpuData($speed = 0.5)     {         if (false === ($prevVal = @file("/proc/stat"))) return false;         $prevVal = implode($prevVal, PHP_EOL);         $prevArr = explode(' ', trim($pr

C# 获取进程或线程的相关信息

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; namespace ConsoleApp { class ProcessDo { /// <summary> /// 获取进程相关信息 /// </summary> public static void GetProcessInfomation() { Proc

使用自动化shell脚本查找CPU使用的详细线程信息

项目加了些拦截器代码后,CPU报警,显示CPU使用率超过100%: 想要查找到底是哪些代码消耗的资源过多,从网上找到一篇博文,转载如下: http://blog.csdn.net/guixunlong/article/details/8450897 在知道哪个Java进程CPU占用率过高以后: 1.使用命令 jstack PID 命令打印出CPU占用过高进程的线程栈,例如jstack 12012 > 12012.txt 2.使用top -H -p PID 命令查看对应进程是哪个线程占用CPU过高

获取系统中所有进程&amp;线程信息

读书笔记--[计算机病毒解密与对抗] 目录: 遍历进程&线程程序 终止进程 获取进程信息 获取进程内模块信息 获取进程命令行参数 代码运行环境:Win7 x64 VS2012 Update3 遍历系统中所有进程 [cpp] view plain copy print? #include <stdio.h> #include <windows.h> #include <TlHelp32.h> int main() { // 为进程的所有线程拍个快照 HANDLE