做网站服装app,wordpress 360字体大小,哪里可以购买域名,淮安app开发0 前言
2024年的网络安全检查又开始了#xff0c;对于使用基于Linux的国产电脑#xff0c;我们可以编写一个脚本来收集系统的有关信息。对于中央处理器CPU比如#xff0c;我们可以使用cat /proc/cpuinfo命令来收集中央处理器CPU的信息。
1. /proc/cpuinfo 保存了系统的cpu… 0 前言
2024年的网络安全检查又开始了对于使用基于Linux的国产电脑我们可以编写一个脚本来收集系统的有关信息。对于中央处理器CPU比如我们可以使用cat /proc/cpuinfo命令来收集中央处理器CPU的信息。
1. /proc/cpuinfo 保存了系统的cpu信息
在linux系统中/proc目录下的文件保存了系统的软硬件信息。 [purpleendurer bash /] ls -l /proc total 0 dr-xr-xr-x 9 csdn csdn 0 5月 28 22:19 1 dr-xr-xr-x 9 csdn csdn 0 5月 28 22:22 102 dr-xr-xr-x 9 csdn csdn 0 5月 28 22:22 127 dr-xr-xr-x 9 csdn csdn 0 5月 28 22:23 155 dr-xr-xr-x 9 csdn csdn 0 5月 28 22:24 170 dr-xr-xr-x 9 csdn csdn 0 5月 28 22:19 47 dr-xr-xr-x 9 csdn csdn 0 5月 28 22:19 72 drwxrwxrwt 2 root root 40 5月 28 22:19 acpi -rw------- 1 root root 0 5月 28 22:23 async_load_calc -r--r--r-- 1 root root 0 5月 28 22:23 buddyinfo dr-xr-xr-x 4 root root 0 5月 28 22:19 bus -r--r--r-- 1 root root 0 5月 28 22:23 cgroups -r--r--r-- 1 root root 0 5月 28 22:23 cmdline -r--r--r-- 1 root root 0 5月 28 22:23 consoles -r--r--r-- 1 root root 0 5月 28 22:23 cpuinfo dr-xr-xr-x 3 root root 0 5月 28 22:23 cpusli -r--r--r-- 1 root root 0 5月 28 22:23 crypto -r--r--r-- 1 root root 0 5月 28 22:23 devices -r--r--r-- 1 root root 0 5月 28 22:23 diskstats -r--r--r-- 1 root root 0 5月 28 22:23 dma dr-xr-xr-x 4 root root 0 5月 28 22:23 driver dr-xr-xr-x 3 root root 0 5月 28 22:23 dynamic_debug --w------- 1 root root 0 5月 28 22:23 dyn_isolcpus -r--r--r-- 1 root root 0 5月 28 22:23 execdomains -rw-r--r-- 1 root root 0 5月 28 22:23 fault_events -r--r--r-- 1 root root 0 5月 28 22:23 fb -r--r--r-- 1 root root 0 5月 28 22:19 filesystems dr-xr-xr-x 9 root root 0 5月 28 22:19 fs -r--r--r-- 1 root root 0 5月 28 22:23 interrupts -r--r--r-- 1 root root 0 5月 28 22:23 iomem -r--r--r-- 1 root root 0 5月 28 22:23 ioports dr-xr-xr-x 28 root root 0 5月 28 22:19 irq -r--r--r-- 1 root root 0 5月 28 22:23 kallsyms crw-rw-rw- 1 root root 1, 3 5月 28 22:19 kcore crw-rw-rw- 1 root root 1, 3 5月 28 22:19 keys -r--r--r-- 1 root root 0 5月 28 22:23 key-users -r-------- 1 root root 0 5月 28 22:23 kmsg -r-------- 1 root root 0 5月 28 22:23 kpagecgroup -r-------- 1 root root 0 5月 28 22:23 kpagecount -r-------- 1 root root 0 5月 28 22:23 kpageflags -r--r--r-- 1 root root 0 5月 28 22:23 loadavg -r--r--r-- 1 root root 0 5月 28 22:23 locks -r--r--r-- 1 root root 0 5月 28 22:23 mdstat -r--r--r-- 1 root root 0 5月 28 22:19 meminfo dr-xr-xr-x 3 root root 0 5月 28 22:23 memsli -r--r--r-- 1 root root 0 5月 28 22:23 misc -r--r--r-- 1 root root 0 5月 28 22:23 modules lrwxrwxrwx 1 root root 11 5月 28 22:23 mounts - self/mounts -rw-r--r-- 1 root root 0 5月 28 22:23 mtrr lrwxrwxrwx 1 root root 8 5月 28 22:23 net - self/net -r-------- 1 root root 0 5月 28 22:23 pagetypeinfo -r--r--r-- 1 root root 0 5月 28 22:23 partitions crw-rw-rw- 1 root root 1, 3 5月 28 22:19 sched_debug -r--r--r-- 1 root root 0 5月 28 22:23 schedstat drwxrwxrwt 2 root root 40 5月 28 22:19 scsi lrwxrwxrwx 1 root root 0 5月 28 22:19 self - 170 -r-------- 1 root root 0 5月 28 22:23 slabinfo -r--r--r-- 1 root root 0 5月 28 22:23 softirqs -r--r--r-- 1 root root 0 5月 28 22:23 stat -r--r--r-- 1 root root 0 5月 28 22:23 swaps dr-xr-xr-x 1 root root 0 5月 28 22:19 sys --w------- 1 root root 0 5月 28 22:19 sysrq-trigger dr-xr-xr-x 5 root root 0 5月 28 22:23 sysvipc lrwxrwxrwx 1 root root 0 5月 28 22:19 thread-self - 170/task/170 crw-rw-rw- 1 root root 1, 3 5月 28 22:19 timer_list dr-xr-xr-x 6 root root 0 5月 28 22:23 tty dr-xr-xr-x 4 root root 0 5月 28 22:23 unevictable -r--r--r-- 1 root root 0 5月 28 22:23 uptime -r--r--r-- 1 root root 0 5月 28 22:23 version -r-------- 1 root root 0 5月 28 22:23 vmallocinfo -r--r--r-- 1 root root 0 5月 28 22:23 vmstat -r--r--r-- 1 root root 0 5月 28 22:23 zerobuddyinfo -r--r--r-- 1 root root 0 5月 28 22:23 zoneinfo [purpleendurer bash /] 如果想了解和获取系统中CPU的提供商和相关配置信息则可以查看/proc/cpuinfo。
2.cat /proc/cpuinfo查看CPU详细信息
2.1 实例
2.1.1 实例1
[purpleendurer bash /] cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 85
model name : Intel(R) Xeon(R) Platinum
stepping : 4
microcode : 0x1
cpu MHz : 2499.442
cache size : 33792 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 22
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves arat
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs taa itlb_multihit mmio_stale_data retbleed
bogomips : 4998.88
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 85
model name : Intel(R) Xeon(R) Platinum
stepping : 4
microcode : 0x1
cpu MHz : 2499.442
cache size : 33792 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 1
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 22
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves arat
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs taa itlb_multihit mmio_stale_data retbleed
bogomips : 4998.88
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:[purpleendurer bash /] 2.1.2 实例2
[purpleendurer bash ~] cat /proc/cpuinfo
processor : 0
model name : Phytium,FT-2000/4
bogomips : 3456.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32
flags : fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer : 0x70
CPU architecture: 8
CPU variant : 0x1
CPU part : 0x663
CPU revision : 3processor : 1
model name : Phytium,FT-2000/4
bogomips : 3456.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32
flags : fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer : 0x70
CPU architecture: 8
CPU variant : 0x1
CPU part : 0x663
CPU revision : 3processor : 2
model name : Phytium,FT-2000/4
bogomips : 3456.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32
flags : fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer : 0x70
CPU architecture: 8
CPU variant : 0x1
CPU part : 0x663
CPU revision : 3processor : 3
model name : Phytium,FT-2000/4
bogomips : 3456.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32
flags : fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer : 0x70
CPU architecture: 8
CPU variant : 0x1
CPU part : 0x663
CPU revision : 32.2 返回信息说明
不同的系统返回的信息内容也不尽相同以下是一些常见的信息项。
输出项含义备注address sizes可访问地址空间位数apicid用来区分不同逻辑核的编号系统中每个逻辑核的此编号必然不同此编号不一定连续bogomips在系统内核启动时粗略测算的CPU速度Million Instructions Per Secondcache_alignment缓存地址对齐单位cache sizeCPU二级缓存大小clflush size每次刷新缓存的大小单位core id当前物理核在其所处CPU中的编号这个编号不一定连续cpu cores该逻辑核所处CPU的物理核数比如此处cpu cores 是4个那么对应core id 可能是 1、3、4、5。cpu familyCPU产品系列代号cpuid level执行cpuid指令前eax寄存器中的值根据不同的值cpuid指令会返回不同的内容cpu MHzCPU的实际使用主频flags当前CPU支持的功能fpu是否具有浮点运算单元Floating Point Unitfpu_exception是否支持浮点计算异常initial apicidmicrocode model CPU属于其系列中的哪一代的代号model nameCPU全名包括处理器品牌。一旦您知道您拥有的 CPU 的确切类型您就可以查看有关处理器规格的产品文档。CPU属于的名字及其编号、标称主频processor 系统中逻辑处理核心的编号从0开始排序。 对于单核处理器则认为是其CPU编号 对于多核处理器则可以是物理核、或者使用超线程技术虚拟的逻辑核 physical id单个CPU的标号power management 对能源管理的支持siblings单个CPU逻辑物理核数steppingCPU属于制作更新版本vendor_idCPU制造商wp表明当前CPU是否在内核态支持对用户空间的写保护Write Protection
2.3 关于物理CPU、核数、逻辑cpu数的概念
2.3.1 物理CPU数physical id
主板上实际插入的cpu数量可以数不重复的 physical id 有几个
2.3.2 CPU核心数cpu cores
单块CPU上面能处理数据的芯片组的数量如双核、四核等
2.3.3逻辑CPU数
一般情况下
在不支持超线程技术或没有开启次技术的情况下 逻辑CPU物理CPU个数×每颗核数 在服务器的CPU支持超线程技术的情况下 逻辑CPU物理CPU个数×每颗核数 *2 简单来说在这种情况下处理器中的1 颗内核会像2 颗内核那样在操作系统中发挥作用。
这样一来操作系统可使用的执行资源扩大了一倍大幅提高了系统的整体性能。
3 应用实例
3.1 grep -m 1 model name /proc/cpuinfo 显示CPU名称 [purpleendurer bash ~] grep -m 1 model name /proc/cpuinfo model name : Intel(R) Xeon(R) Platinum [purpleendurer bash ~] 3.2 grep -c model name /proc/cpuinfo显示CPU数量 [purpleendurer bash ~] grep -c model name /proc/cpuinfo 2 [purpleendurer bash ~] 3.3 grep -c cpu cores /proc/cpuinfo : 获取CPU核数 [purpleendurer bash ~] grep -c cpu cores /proc/cpuinfo 2 [purpleendurer bash ~] 3.4 grep -c processor /proc/cpuinfo获取系统中的逻辑CPU数量 [purpleendurer bash ~] grep -c processor /proc/cpuinfo 2 [purpleendurer bash ~] 3.5 grep -c siblings /proc/cpuinfo获取每个物理CPU中逻辑CPU的个数 [purpleendurer bash ~] grep -c siblings /proc/cpuinfo 2 [purpleendurer bash ~] 3.6 检测cpu是否使用了超级程Hyper-Threading
我们可以通过比较cpu cores数量和siblings数量来判断
如果cpu cores数量和siblings数量一致说明没有启用超线程否则就是启用了超线程。
我们把cpu cores数量保存到变量a把siblings数量保存到变量b然后用if语句比变量a和b的值并输出相应的结果 [purpleendurer bash ~] grep -c cpu cores /proc/cpuinfo 2 [purpleendurer bash ~] grep -c siblings /proc/cpuinfo 2 [purpleendurer bash ~] a$(grep -c cpu cores /proc/cpuinfo);b$(grep -c siblings /proc/cpuinfo);if [ $a $b ]; then echo No Hyper-Threading; else echo Hyper-Threading; fi No Hyper-Threading [purpleendurer bash ~] cpu cores数量和siblings数量一致都是2说明没有启用超线程。
4.其它相关命令 除了利用/proc/cpuinfo文件我们还可以使用其它命令比如 lscpu、nproc留待下回讲解。