C/C++教程

02-查看CPU和内存

本文主要是介绍02-查看CPU和内存,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1. 内存查看和清理

1.1 内存查看

[root@DO-NFS data]# free -h
              total        used        free      shared  buff/cache   available
Mem:           3.7G        236M        519M        179M        2.9G        3.0G
Swap:          4.0G         34M        4.0G

说明:

  • shared(共享内存)
    作用:用于进程间相互通讯 
    特点:共享、互斥

  • buffers(缓冲区)
    作用:减少磁盘的I/O频率。如每秒100的读写,放入缓冲区,变为1秒10次。

  • cached(缓存区)
    作用:内容重复读写时加快读取速度。如I/O慢的设备将读过的文件放入内存缓存区。

  • 计算和关系
    used+free+shared+buff/cache=total
    available是实际剩余可用的内存(buff/cache中可释放的部分+free)

1.2 内存清理

1.2.1 将dirty的内容写回硬盘

# sync

1.2.2 清理内存

通过修改proc系统的drop_caches清理,但是available的值是不会变的(最后的示例中可见)。

  • 删除 pagecache(在buffer中)
# echo 1 > /proc/sys/vm/drop_caches

说明:page cache,高速缓冲存储器(页高缓)。page cache的大小为一页,通常为4K。在linux读写文件时,它用于缓存文件的逻辑内容,从而加快对磁盘上映像和数据的访问。

  • 删除 dentries 和 inodes(在cached中)
# echo 2 > /proc/sys/vm/drop_caches
  • 3个全删:
#echo 3 > /proc/sys/vm/drop_caches
  • 示例
[root@DO-NFS ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           3.7G        239M        672M        179M        2.8G        3.0G
Swap:          4.0G         34M        4.0G
[root@DO-NFS ~]# echo 3 > /proc/sys/vm/drop_caches
[root@DO-NFS ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           3.7G        238M        3.0G        179M        411M        3.0G
Swap:          4.0G         34M        4.0G

如前所述,我们验证了该方法 available的值是不会变的。

2. 查看CPU

2.1 一些概念

CPU、物理核、逻辑核(线程)的关系如下:

image.png

2.2 查看cpu信息

  • 查看文件 /proc/cpuinfo,信息如下:
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 85
model name      : Intel(R) Xeon(R) Platinum 8269CY CPU @ 2.50GHz
stepping        : 7
microcode       : 0x1
cpu MHz         : 2500.002
cache size      : 36608 KB
physical id     : 0
siblings        : 12
core id         : 0
cpu cores       : 6
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 nonstop_tsc eagerfpu pni pclmulqdq monitor ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 arat avx512_vnni
bogomips        : 5000.00
clflush size    : 64
cache_alignment : 64
address sizes   : 46 bits physical, 48 bits virtual
power management:

processor       : 1
vendor_id       : GenuineIntel
……

2.2.1 查看逻辑核(线程)

第一行 “ processor: 0” 即逻辑cpu的编号,后边还有1、2……,每个逻辑核会写一组信息

  • 统计逻辑核
[root@node-01 ~]# cat /proc/cpuinfo |grep processor|wc -l
12

可知是12线程。

2.2.2 物理核

上文的 cores id 指的是该线程的核心号,我们统计一下去重得到物理核数。

  • 统计物理核数
[root@node-01 ~]# cat /proc/cpuinfo |grep "core id"|sort|uniq|wc -l
6

可知一共6个核心

2.2.3 物理CPU颗数

上文的physical id 即物理cpu的编号,统计一下去重得到CPU颗数。

  • 统计物理CPU颗数
#  cat /proc/cpuinfo |grep "physical id"|sort|uniq |wc -l
1

可知有一颗物理CPU

2.2.4 查看CPU信息(型号)

[root@node-01 ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
     12  Intel(R) Xeon(R) Platinum 8269CY CPU @ 2.50GHz

这篇关于02-查看CPU和内存的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!