Linux运维17:观察CPU状态

 系列专题:Linux运维入门教程 


      CPU 是影响 Linux 性能的主要因素之一,本节将介绍几个可以用来查看 CPU 性能的命令。

1.lscpu

      此命令用来显示cpu的相关信息,scpu从sysfs和/proc/cpuinfo收集cpu体系结构信息,命令的输出比较易读命令输出的信息包含cpu数量,线程,核数,套接字和Nom-Uniform Memeor Access(NUMA),缓存等

语法:

lscpu

示例:

[root@node1 ~]# lscpu 
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
Thread(s) per core:    1
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 142
Model name:            Intel(R) Core(TM) i7-10510U CPU @ 1.80GHz
Stepping:              12
CPU MHz:               2304.003
CPU max MHz:           0.0000
CPU min MHz:           0.0000
BogoMIPS:              4608.00
Hypervisor vendor:     VMware
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              8192K
NUMA node0 CPU(s):     0,1
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf eagerfpu 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 epb fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap xsaveopt xsavec xgetbv1 dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp
[root@node1 ~]#

2. top

       默认进入top时,各进程是按照CPU的占用量来排序的。在top基本视图中,按键盘数字“1”可以监控每个逻辑CPU的状况

top - 21:47:40 up  1:07,  1 user,  load average: 0.00, 0.01, 0.05
Tasks:  93 total,   2 running,  91 sleeping,   0 stopped,   0 zombie
%Cpu0  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1865312 total,  1639232 free,    93912 used,   132168 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  1613916 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                       
    27 root      20   0       0      0      0 S   0.3  0.0   0:07.65 kworker/0:1                                                                   
    28 root      20   0       0      0      0 S   0.3  0.0   0:03.84 kworker/1:1                                                                   
     1 root      20   0  125204   3716   2560 S   0.0  0.2   0:02.28 systemd                                                                       
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.01 kthreadd                                                                      
     3 root      20   0       0      0      0 S   0.0  0.0   0:00.05 ksoftirqd/0                                                                   
     5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H  

3. vmstat命令

[root@node1 ~]# vmstat 2 3
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
1  0      8 247512  39660 394168    0    0    31     8   86  269  0  1 98  1  0
0  0      8 247480  39660 394172    0    0     0     0   96  147  4  0 96  0  0
0  0      8 247484  39660 394172    0    0     0    66   95  141  2  2 96  0  0

通过分析 vmstat 命令的执行结果,可以获得一些与当前 Linux 运行性能相关的信息。比如说:

  • r 列表示运行和等待 CPU 时间片的进程数,如果这个值长期大于系统 CPU 的个数,就说明 CPU 不足,需要增加 CPU。
  • 输出结果中,CPU 项显示了 CPU 的使用状态,其中当 us 列的值较高时,说明用户进程消耗的 CPU 时间多,如果其长期大于 50%,就需要考虑优化程序或算法;sy 列的值较高时,说明内核消耗的 CPU 资源较多。通常情况下,us+sy 的参考值为 80%,如果其值大于 80%,则表明可能存在 CPU 资源不足的情况。

总的来说,vmstat 命令的输出结果中,我们应该重点注意 procs 项中 r 列的值,以及 CPU 项中 us 列、sy 列和 id 列的值。

4. uptime命令

uptime 命令是监控系统性能最常用的一个命令,主要用来统计系统当前的运行状况。例如:

[root@node1 ~]# uptime 
 21:53:49 up  1:14,  1 user,  load average: 0.01, 0.02, 0.05

该命令的输出结果中,各个数据所代表的含义依次是:系统当前时间、系统运行时长、当前登陆系统的用户数量、系统分别在 1 分钟、5 分钟和 15 分钟内的平均负载。

这里需要注意的是,load average 这 3 个输出值一般不能大于系统 CPU 的个数。例如,本测试系统有 8 个 CPU,如果 load average 中这 3 个值长期大于 8,就说明 CPU 很繁忙,负载很高,系统性能可能会受到影响;如果偶尔大于 8 则不用担心,系统性能一般不会受到影响;如果这 3 个值小于 CPU 的个数(如本例所示),则表示 CPU 是非常空闲的。
 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YoungerChina

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值