欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

Linux查看CPU和内存的配置信息 几核 核数 有大用

CPU配置信息:
frank@ubuntu:~/test/python$ cat /proc/cpuinfo
    processor       : 0                                                #系统中逻辑处理核的编号
    vendor_id       : GenuineIntel                                    #CPU制造商
    cpu family      : 6                                                #CPU产品系列代号
    model           : 79                                            #CPU属于其系列中的哪一代的代号
    model name      : Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz        #CPU属于的名字及其编号、标称主频
    stepping        : 1                                                #CPU属于制作更新版本
    microcode       : 0xb00001f
    cpu MHz         : 2199.900                                        #CPU的实际使用主频
    cache size      : 25600 KB                                        #CPU二级缓存大小
    physical id     : 0                                                #单个CPU的标号
    siblings        : 20                                            #一个物理CPU中的逻辑核数
    core id         : 0                                                #当前物理核在其所处CPU中的编号,这个编号不一定连续
    cpu cores       : 10                                            #一个物理CPU中的物理核数
    apicid          : 0                                                #用来区分不同逻辑核的编号,系统中每个逻辑核的此编号必然不同,此编号不一定连续
    initial apicid  : 0
    fpu             : yes
    fpu_exception   : yes
    cpuid level     : 20
    wp              : yes
    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 pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm rdseed adx smap
    bogomips        : 4399.80
    clflush size    : 64
    cache_alignment : 64
    address sizes   : 46 bits physical, 48 bits virtual
    power management:

物理CPU个数:        cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l
每个CPU物理核数:    cat /proc/cpuinfo |grep "cpu cores"|uniq
每个CPU逻辑核数:    cat /proc/cpuinfo |grep "siblings"|uniq
总CPU逻辑核数:        cat /proc/cpuinfo |grep -c "processor"
我的服务器是两个芯片组,每个芯片组是10核,支持超线程,所以逻辑CPU是40。
超线程指物理内核+逻辑内核,芯片上只存在一个物理内核,但是这个物理内核可以模拟出一个逻辑内核,于是系统信息就显示了两个内核,一真一假。
复制代码
复制代码
1.查看内存槽数、哪个槽位插了内存,大小是多少
    frank@ubuntu:~/test$ sudo dmidecode|grep -P -A5 "Memory Device" |grep Size
        Size: 32 GB
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
        Size: 32 GB
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed

2.查看最大支持内存数
    frank@ubuntu:~/test$ sudo dmidecode -t memory |grep "Maximum Capacity"
        Maximum Capacity: 3 TB
        
3.查看内存速率
    frank@ubuntu:~/test$ sudo dmidecode|grep -A16 "Memory Device"|grep 'Speed'
        Speed: 2400 MHz
        Speed: Unknown
        Speed: Unknown
        Speed: Unknown
        Speed: Unknown
        Speed: Unknown
        Speed: Unknown
        Speed: Unknown
        Speed: Unknown
        Speed: Unknown
        Speed: Unknown
        Speed: Unknown
        Speed: 2400 MHz
        Speed: Unknown
        Speed: Unknown
        Speed: Unknown
        Speed: Unknown
        Speed: Unknown
        Speed: Unknown
        Speed: Unknown
        Speed: Unknown
        Speed: Unknown
        Speed: Unknown
        Speed: Unknown
复制代码
复制代码
 1 #!/bin/sh
 2 
 3 echo ">>>need root permission<<<\n"
 4 
 5 echo "1. equipment brand: `dmidecode -s system-product-name`"
 6 
 7 echo "2. OS info: `lsb_release -d | grep "Description"|awk -F: '{print $2}'`"
 8 
 9 echo "3. kernel info: `uname -s -m -r`"
10 
11 echo "4. hardware platform: `uname -i`"
12 
13 echo "5. cpu info:"
14 echo "\tbrand and freq: `cat /proc/cpuinfo |grep "model name"|uniq |awk -F: '{print $2}'`"
15 echo "\tphysical CPUs:`cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l`"
16 echo "\tphysical cores per CPU: `cat /proc/cpuinfo |grep "cpu cores"|uniq|awk -F: '{print $2}'`"
17 echo "\tlogical cores per CPU: `cat /proc/cpuinfo |grep "siblings"|uniq|awk -F: '{print $2}'`"
18 echo "\ttotal logic cores: `cat /proc/cpuinfo |grep -c "processor"`"
19 
20 echo "6. memory slots and size: \n `dmidecode|grep -P -A5 "Memory Device" |grep Size`"
21 
22 echo "7. maximum capacity of memory: `dmidecode -t memory |grep "Maximum Capacity"| awk -F: '{print $2}'`"
23 echo "8. memory speed: \n`dmidecode|grep -A16 "Memory Device"|grep 'Speed'`"
复制代码

 

来自  https://www.cnblogs.com/black-mamba/p/7102615.html?utm_source=itdadao&utm_medium=referral



Linux下查看CPU信息,CPU的信息在启动的过程中被装载到虚拟目录/proc下的cpuinfo文件中,我们可以通过 cat /proc/cpuinfo查看


[html] view plain copy
  1. [root@localhost proc]# cat cpuinfo  

  2. processor       : 0  

  3. vendor_id       : GenuineIntel  

  4. cpu family      : 6  

  5. model           : 60  

  6. model name      : Intel(R) Xeon(R) CPU E3-1225 v3 @ 3.20GHz  

  7. stepping        : 3  

  8. microcode       : 0x17  

  9. cpu MHz         : 3200.500  

  10. cache size      : 8192 KB  

  11. physical id     : 0  

  12. siblings        : 4  

  13. core id         : 0  

  14. cpu cores       : 4  

  15. apicid          : 0  

  16. initialapicid  : 0  

  17. fpu             : yes  

  18. fpu_exception   : yes  

  19. cpuid level     : 13  

  20. wp              : yes  

  21. flags           : fpuvme de psetscmsrpaemce cx8 apicsepmtrrpgemcacmov pat pse36 clflushdtsacpi mmx fxsrsse sse2 ssht tm pbesyscallnx pdpe1gb rdtscp lm constant_tscarch_perfmonpebsbtsrep_goodnoplxtopologynonstop_tscaperfmperfeagerfpupnipclmulqdq dtes64 monitor ds_cplvmxsmxest tm2 ssse3 fma cx16 xtprpdcmpcid sse4_1 sse4_2 x2apic movbepopcnttsc_deadline_timeraesxsaveavx f16c rdrandlahf_lmabmaratepbxsaveoptpln pts dthermtpr_shadowvnmiflexpriorityeptvpidfsgsbasetsc_adjust bmi1 hle avx2 smep bmi2 ermsinvpcidrtm  

  22. bogomips        : 6400.67  

  23. clflush size    : 64  

  24. cache_alignment : 64  

  25. address sizes   : 39 bits physical, 48 bits virtual  

  26. power management:  

  27.   

  28. processor       : 1  

  29. vendor_id       : GenuineIntel  

  30. cpu family      : 6  

  31. model           : 60  

  32. model name      : Intel(R) Xeon(R) CPU E3-1225 v3 @ 3.20GHz  

  33. stepping        : 3  

  34. microcode       : 0x17  

  35. cpu MHz         : 3200.500  

  36. cache size      : 8192 KB  

  37. physical id     : 0  

  38. siblings        : 4  

  39. core id         : 1  

  40. cpu cores       : 4  

  41. apicid          : 2  

  42. initialapicid  : 2  

  43. fpu             : yes  

  44. fpu_exception   : yes  

  45. cpuid level     : 13  

  46. wp              : yes  

  47. flags           : fpuvme de psetscmsrpaemce cx8 apicsepmtrrpgemcacmov pat pse36 clflushdtsacpi mmx fxsrsse sse2 ssht tm pbesyscallnx pdpe1gb rdtscp lm constant_tscarch_perfmonpebsbtsrep_goodnoplxtopologynonstop_tscaperfmperfeagerfpupnipclmulqdq dtes64 monitor ds_cplvmxsmxest tm2 ssse3 fma cx16 xtprpdcmpcid sse4_1 sse4_2 x2apic movbepopcnttsc_deadline_timeraesxsaveavx f16c rdrandlahf_lmabmaratepbxsaveoptpln pts dthermtpr_shadowvnmiflexpriorityeptvpidfsgsbasetsc_adjust bmi1 hle avx2 smep bmi2 ermsinvpcidrtm  

  48. bogomips        : 6400.67  

  49. clflush size    : 64  

  50. cache_alignment : 64  

  51. address sizes   : 39 bits physical, 48 bits virtual  

  52. power management:  

  53.   

  54. processor       : 2  

  55. vendor_id       : GenuineIntel  

  56. cpu family      : 6  

  57. model           : 60  

  58. model name      : Intel(R) Xeon(R) CPU E3-1225 v3 @ 3.20GHz  

  59. stepping        : 3  

  60. microcode       : 0x17  

  61. cpu MHz         : 3200.000  

  62. cache size      : 8192 KB  

  63. physical id     : 0  

  64. siblings        : 4  

  65. core id         : 2  

  66. cpu cores       : 4  

  67. apicid          : 4  

  68. initialapicid  : 4  

  69. fpu             : yes  

  70. fpu_exception   : yes  

  71. cpuid level     : 13  

  72. wp              : yes  

  73. flags           : fpuvme de psetscmsrpaemce cx8 apicsepmtrrpgemcacmov pat pse36 clflushdtsacpi mmx fxsrsse sse2 ssht tm pbesyscallnx pdpe1gb rdtscp lm constant_tscarch_perfmonpebsbtsrep_goodnoplxtopologynonstop_tscaperfmperfeagerfpupnipclmulqdq dtes64 monitor ds_cplvmxsmxest tm2 ssse3 fma cx16 xtprpdcmpcid sse4_1 sse4_2 x2apic movbepopcnttsc_deadline_timeraesxsaveavx f16c rdrandlahf_lmabmaratepbxsaveoptpln pts dthermtpr_shadowvnmiflexpriorityeptvpidfsgsbasetsc_adjust bmi1 hle avx2 smep bmi2 ermsinvpcidrtm  

  74. bogomips        : 6400.67  

  75. clflush size    : 64  

  76. cache_alignment : 64  

  77. address sizes   : 39 bits physical, 48 bits virtual  

  78. power management:  

  79.   

  80. processor       : 3  

  81. vendor_id       : GenuineIntel  

  82. cpu family      : 6  

  83. model           : 60  

  84. model name      : Intel(R) Xeon(R) CPU E3-1225 v3 @ 3.20GHz  

  85. stepping        : 3  

  86. microcode       : 0x17  

  87. cpu MHz         : 3200.000  

  88. cache size      : 8192 KB  

  89. physical id     : 0  

  90. siblings        : 4  

  91. core id         : 3  

  92. cpu cores       : 4  

  93. apicid          : 6  

  94. initialapicid  : 6  

  95. fpu             : yes  

  96. fpu_exception   : yes  

  97. cpuid level     : 13  

  98. wp              : yes  

  99. flags           : fpuvme de psetscmsrpaemce cx8 apicsepmtrrpgemcacmov pat pse36 clflushdtsacpi mmx fxsrsse sse2 ssht tm pbesyscallnx pdpe1gb rdtscp lm constant_tscarch_perfmonpebsbtsrep_goodnoplxtopologynonstop_tscaperfmperfeagerfpupnipclmulqdq dtes64 monitor ds_cplvmxsmxest tm2 ssse3 fma cx16 xtprpdcmpcid sse4_1 sse4_2 x2apic movbepopcnttsc_deadline_timeraesxsaveavx f16c rdrandlahf_lmabmaratepbxsaveoptpln pts dthermtpr_shadowvnmiflexpriorityeptvpidfsgsbasetsc_adjust bmi1 hle avx2 smep bmi2 ermsinvpcidrtm  

  100. bogomips        : 6400.67  

  101. clflush size    : 64  

  102. cache_alignment : 64  

  103. address sizes   : 39 bits physical, 48 bits virtual  

  104. power management:  


各项参数注释:



processor

系统中逻辑处理核的编号。对于单核处理器,则课认为是其CPU编号,对于多核处理器则可以是物理核、或者使用超线程技术虚拟的逻辑核

vendor_id

CPU制造商

cpu family

CPU产品系列代号

model

CPU属于其系列中的哪一代的代号

model name

CPU属于的名字及其编号、标称主频

stepping

CPU属于制作更新版本

cpu MHz

CPU的实际使用主频

cache size

CPU二级缓存大小

physical id

单个CPU的标号

siblings

单个CPU逻辑物理核数

core id

当前物理核在其所处CPU中的编号,这个编号不一定连续

cpu cores

该逻辑核所处CPU的物理核数

apicid

用来区分不同逻辑核的编号,系统中每个逻辑核的此编号必然不同,此编号不一定连续

fpu

是否具有浮点运算单元(Floating Point Unit)

fpu_exception

是否支持浮点计算异常

cpuid level

执行cpuid指令前,eax寄存器中的值,根据不同的值cpuid指令会返回不同的内容

wp

表明当前CPU是否在内核态支持对用户空间的写保护(Write Protection)

flags

当前CPU支持的功能

bogomips

在系统内核启动时粗略测算的CPU速度(Million Instructions Per Second)

clflush size

每次刷新缓存的大小单位

cache_alignment

缓存地址对齐单位

address sizes

可访问地址空间位数

power management

对能源管理的支持,有以下几个可选支持功能:

  ts:  temperature sensor

  fid:  frequency id control

  vid:  voltage id control

  ttp:  thermal trip

  tm:

  stc:

  100mhzsteps:

  hwpstate:




在编程中如果需要获取CPU信息就可以直接读取这个文件来获取,可以使用system函数进行匹配查找,也可以自己封装一段代码来实现:



  1. #include <stdio.h>  

  2. #include <fcntl.h>  

  3. #include <unistd.h>  

  4. int main()  

  5. {  

  6.     char cpuProce[] = "processor\t:";  

  7.     char readInfo;  

  8.     int fd = 0;  

  9.     int col = 0;  

  10.     int flag = 0;  

  11.     int cpuNUM = 0;  

  12.   

  13.     fd = open("/proc/cpuinfo", O_RDONLY);  

  14.     if (fd< 0)   

  15.     {  

  16.         return 0;  

  17.     }  

  18.     flag = 1;  

  19.     for (col = 0; read(fd, &readInfo, 1) == 1; )   

  20.     {  

  21.         if (readInfo == '\n')  

  22.         {  

  23.             col = 0;  

  24.             flag = 1;  

  25.         }   

  26.         else  

  27.         {  

  28.             if (flag && col < (sizeof(cpuProce) - 1))  

  29.             {  

  30.                 if (readInfo != cpuProce[col])  

  31.                 {  

  32.                     flag = 0;  

  33.                 }  

  34.                 col++;  

  35.             }  

  36.             else if (flag)   

  37.             {  

  38.                 cpuNUM++;  

  39.                 flag = 0;  

  40.             }  

  41.         }  

  42.     }  

  43.     printf("CPU number is:%d\n",cpuNUM);  

  44.     close(fd);  

  45.     return 0;  

  46. }  




Makefile文件:


[html] view plain copy
  1. CXX=g++  

  2. CFLAGS=-O3 -Wall -fmessage-length=0 -fPIC -DARCH_x86  

  3. OBJS=getCpuNum.o  

  4. LIBS+=   

  5. TARGETgetCpuNum  

  6. $(TARGET):$(OBJS)  

  7.     $(CXX) -o $(TARGET) $(OBJS) $(CFLAGS) $(LIBS)  

  8.     chmod 6755 $(TARGET)  

  9. all:$(TARGET)  

  10. install: all  

  11.     chmod 6755 $(TARGET)  

  12. clean:  

  13.     rm -f $(OBJS) $(TARGET)  



运行结果:



[html] view plain copy
  1. [root@localhostgetCpuNum]# ./getCpuNum  

  2. CPU number is:4  

  3. 和上面直接读取文件的数量是一致的。  


来自  http://blog.csdn.net/kongshuai19900505/article/details/51448553

普通分类: