首页 > 其他分享 >CPU利用率100%怎么处理?

CPU利用率100%怎么处理?

时间:2024-05-02 23:22:36浏览次数:31  
标签:1.00 15 利用率 100% 45 CPU dmserver 0.00

--查看内核节拍率
[root@p4-oadmnewdb01 ~]# grep 'CONFIG_HZ=' /boot/config-4.19.90-23.32.v2101.ky10.x86_64 
CONFIG_HZ=250

--查看不同场景的CPU时间
cat /proc/stat|grep ^cpu
[root@p4-oadmnewdb01 ~]# cat /proc/stat|grep ^cpu
cpu  1597988157 210022 139005384 242060533200 12123558 22164898 31585778 0 0 0
cpu0 8976740 1444 1097051 1889124001 54066 301196 5408632 0 0 0
cpu1 21409661 1504 1206388 1881452122 59949 213385 745226 0 0 0
cpu2 24666369 1605 1304782 1878296806 58566 228519 542164 0 0 0
cpu3 27948256 1572 1369251 1874959508 58276 230990 540278 0 0 0
cpu4 20027278 3011 1760924 1882231296 118487 282228 446323 0 0 0
cpu5 24340021 1811 1588562 1878143807 117757 286480 448325 0 0 0
cpu6 25898444 2197 1605952 1876542783 106132 295356 472368 0 0 0
cpu7 29649660 2268 1659499 1872725886 96203 295365 501260 0 0 0
cpu8 22422122 2380 1719910 1880278019 127207 200381 366977 0 0 0
cpu9 23136415 7637 1526691 1879732594 125973 216137 385788 0 0 0
cpu10 25253961 3927 1538012 1877572274 105277 232597 436775 0 0 0
cpu11 28045591 1817 1597679 1874642996 100254 231982 494862 0 0 0
cpu12 21822627 2423 1632735 1881055586 110663 184247 365766 0 0 0
cpu13 22554549 1817 1505783 1880423881 103083 198050 399001 0 0 0
  • user(us):用户态CPU时间。包括guest时间,不包括nice时间。
  • nice(ni):低优先级用户态CPU时间,也就是进程的nice值被调整为1-19之间时的CPU时间。 nice取值范围是-20到19,数值越大,优先级反而越低。
  • system(sys):代表内核态CPU时间。
  • idle(id):代表空闲时间。注意,不包括iowait。
  • iowait(wa):代表等待IO的CPU时间。
  • irq(hi):代表处理硬中断的CPU时间。
  • softirq(si):代表处理软中断的CPU时间。
  • steal(st):代表当系统运行在虚拟机中的时候,被其他虚拟机占用的CPU时间。
  • guest(guest):代表通过虚拟化运行其他操作系统的时间,也就是运行虚拟机的CPU时间。
  • guest_nice(gnice):代表以低优先级运行虚拟机的时间。

而我们通常所说的CPU使用率,就是除了空闲时间外其他时间占总CPU时间的百分比。
性能分析工具给出的都是间隔一段时间的平均CPU使用率,所以要注意间隔时间的设置。

如何查看CPU使用率?

  • top显示了系统总体的CPU和内存使用情况,以及各个进程的资源使用情况。
  • ps则只显示了每个进程的资源使用情况。

怎么查看每个进程细分的详细cpu情况?

pidstat 1 5 

[dmdba@p4-oakdmdb1 logcommit]$ pidstat 1 5
Linux 4.19.90-23.32.v2101.ky10.x86_64 (p4-oakdmdb1) 	2024年04月30日 	_x86_64_	(96 CPU)

15时45分18秒   UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
15时45分19秒     0       523    0.00    4.90    0.00    0.00    4.90    25  kswapd0
15时45分19秒  1000      6397    3.92    0.98    0.00    0.00    4.90    37  dmwatcher
15时45分19秒  1000    583849    0.98    1.96    0.00    0.00    2.94     9  pidstat
15时45分19秒  1000   3160711 1345.10  550.00    0.00    0.00 1895.10    11  dmserver

15时45分19秒   UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
15时45分20秒     0       523    0.00    5.00    0.00    0.00    5.00    73  kswapd0
15时45分20秒     0      6116    1.00    3.00    0.00    0.00    4.00    40  irqbalance
15时45分20秒  1000      6397    5.00    1.00    0.00    0.00    6.00    29  dmwatcher
15时45分20秒     0      6913    0.00    1.00    0.00    0.00    1.00    19  titanagent
15时45分20秒  1000    583849    1.00    1.00    0.00    0.00    2.00    10  pidstat
15时45分20秒  1000   3160711 1339.00  520.00    0.00    0.00 1859.00    11  dmserver

15时45分20秒   UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
15时45分21秒  3001      6240   15.00   53.00    0.00    0.00   68.00    15  node_exporter
15时45分21秒  1000      6397    3.00    0.00    0.00    0.00    3.00    29  dmwatcher
15时45分21秒     0      6913    0.00    3.00    0.00    0.00    3.00    19  titanagent
15时45分21秒     0    430123    0.00    1.00    0.00    0.00    1.00    83  cvd
15时45分21秒     0    540492    0.00    2.00    0.00    0.00    2.00    18  kworker/18:7-events_power_efficient
15时45分21秒     0    574510    0.00    1.00    0.00    0.00    1.00    83  kworker/83:22-xfs-conv/nvme0n1
15时45分21秒     0    582205    0.00    1.00    0.00    0.00    1.00    84  kworker/u192:5-bond
15时45分21秒  1000    583849    1.00    2.00    0.00    0.00    3.00    10  pidstat
15时45分21秒  1000   3160711 1322.00  619.00    0.00    0.00 1941.00    11  dmserver

15时45分21秒   UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
15时45分22秒     0      6117    0.00    1.00    0.00    0.00    1.00    95  rngd
15时45分22秒  3001      6240    0.00    1.00    0.00    0.00    1.00    15  node_exporter
15时45分22秒  1000      6397    3.00    2.00    0.00    0.00    5.00    38  dmwatcher
15时45分22秒     0      6913    0.00    1.00    0.00    0.00    1.00    19  titanagent
15时45分22秒  3002     21709    0.00    1.00    0.00    0.00    1.00    46  zabbix_agentd
15时45分22秒     0    549322    0.00    1.00    0.00    0.00    1.00    19  kworker/19:63-mm_percpu_wq
15时45分22秒  1000    583849    1.00    2.00    0.00    0.00    3.00    10  pidstat
15时45分22秒  1000   3160711 1435.00  561.00    0.00    0.00 1996.00    11  dmserver

15时45分22秒   UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
15时45分23秒  1000      6397    4.00    1.00    0.00    0.00    5.00    38  dmwatcher
15时45分23秒     0      6913    0.00    1.00    0.00    0.00    1.00    19  titanagent
15时45分23秒     0    562884    0.00    1.00    0.00    0.00    1.00    66  kworker/66:0-mm_percpu_wq
15时45分23秒  1000    583849    0.00    2.00    0.00    0.00    2.00    10  pidstat
15时45分23秒     0   1515814    1.00    0.00    0.00    0.00    1.00    65  java
15时45分23秒  1000   3160711 1578.00  636.00    0.00    0.00 2214.00    11  dmserver

平均时间:   UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
平均时间:     0       523    0.00    1.99    0.00    0.00    1.99     -  kswapd0
平均时间:     0      6116    0.20    0.60    0.00    0.00    0.80     -  irqbalance
平均时间:     0      6117    0.00    0.20    0.00    0.00    0.20     -  rngd
平均时间:  3001      6240    2.99   10.76    0.00    0.00   13.75     -  node_exporter
平均时间:  1000      6397    3.78    1.00    0.00    0.00    4.78     -  dmwatcher
平均时间:     0      6913    0.00    1.20    0.00    0.00    1.20     -  titanagent
平均时间:  3002     21709    0.00    0.20    0.00    0.00    0.20     -  zabbix_agentd
平均时间:     0    430123    0.00    0.20    0.00    0.00    0.20     -  cvd
平均时间:     0    540492    0.00    0.40    0.00    0.60    0.40     -  kworker/18:7-events_power_efficient
平均时间:     0    549322    0.00    0.20    0.00    0.00    0.20     -  kworker/19:63-mm_percpu_wq
平均时间:     0    562884    0.00    0.20    0.00    0.00    0.20     -  kworker/66:0-mm_percpu_wq
平均时间:     0    574510    0.00    0.20    0.00    0.00    0.20     -  kworker/83:22-mm_percpu_wq
平均时间:     0    582205    0.00    0.20    0.00    0.00    0.20     -  kworker/u192:5-bond
平均时间:  1000    583849    0.80    1.79    0.00    0.00    2.59     -  pidstat
平均时间:     0   1515814    0.20    0.00    0.00    0.00    0.20     -  java
平均时间:  1000   3160711 1403.59  577.09    0.00    0.00 1980.68     -  dmserver


[dmdba@p4-oakdmdb1 logcommit]$ ps -ef|grep dms
dmdba     583512 2116248  0 15:44 pts/0    00:00:00 grep dms
dmdba    3160711       1 99 2月26 ?       490-08:40:12 /home/dmdba/dmdbms/bin/dmserver path=/data/1/dmdata/OA/dm.ini -noconsole mount
[dmdba@p4-oakdmdb1 logcommit]$ pidstat -p 3160711 1 5
Linux 4.19.90-23.32.v2101.ky10.x86_64 (p4-oakdmdb1) 	2024年04月30日 	_x86_64_	(96 CPU)

15时44分49秒   UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
15时44分50秒  1000   3160711 1237.00  415.00    0.00    0.00 1652.00    11  dmserver
15时44分51秒  1000   3160711  897.00  417.00    0.00    0.00 1314.00    11  dmserver
15时44分52秒  1000   3160711  744.00  387.00    0.00    0.00 1131.00    11  dmserver
15时44分53秒  1000   3160711  734.00  339.00    0.00    0.00 1073.00    11  dmserver
15时44分54秒  1000   3160711 1160.00  507.00    0.00    0.00 1667.00    11  dmserver
平均时间:  1000   3160711  954.40  413.00    0.00    0.00 1367.40     -  dmserver

CPU使用率过高怎么办?

1.perf top

  • Overhead:该符号性能时间在所有采样中的比例。
  • shared:该函数或指令所在的动态共享对象(Dynamic Shared Object),如内核、进程名、动态链接库名、内核模块名等。
  • Object:动态共享对象的类型。[.]表示用户空间的可执行程序、或者动态链接库,而[k]则表示内核空间。
  • Symbol:符号名,也就是函数名。当函数名未知时,用十六进制地址来表示。
Samples: 28K of event 'cycles', 4000 Hz, Event count (approx.): 5985014199 lost: 0/0                                                                                                                                                          
Overhead  Shared Object               Symbol
  12.46%  dmserver                  [.] tuple4_tmp_key_from_nrec
  11.12%  dmserver                  [.] nrec_get_nth_fld_with_offset
   4.98%  dmserver                  [.] csek2_fill_one_tuple_by_nrec
   4.27%  dmserver                  [.] page4_cur_search
   1.91%  [kernel]                  [k] strstr
   1.72%  [kernel]                  [k] strlen
   1.56%  dmserver                  [.] tuple4_key_cmp_low.isra.1
   1.14%  dmserver                  [.] cscn2_get_len_blank
   1.08%  dmserver                  [.] buf4_page_get_in_fast_pool
   1.04%  perf                      [.] 0x000000000022d5b7
   0.95%  dmserver                  [.] xdec_move_from_nrec
   0.89%  dmserver                  [.] nbtr_get_child_page_fast
   0.86%  dmserver                  [.] bdta3_ptr_str
   0.85%  libc-2.28.so              [.] memcpy
   0.84%  perf                      [.] 0x000000000023a054
   0.82%  dmserver                  [.] nbtr_cur_search_low
   0.80%  dmserver                  [.] csek2_bdta3_colstr_prepare
   0.70%  dmserver                  [.] tuple4_key_from_nrec_with_space
   0.66%  [kernel]                  [k] kallsyms_expand_symbol.constprop.2
   0.66%  dmserver                  [.] dta_cmp_real_rowid
   0.60%  dmserver                  [.] os_interlock_read
   0.60%  dmserver                  [.] buf4_fast_pool_hash_sync
   0.59%  [kernel]                  [k] clear_page_rep
   0.57%  dmserver                  [.] blkup2_exec_fill_data_normal

perf record和perf report. perf top虽然实时展示了系统的性能信息,但他的缺点是并不保存数据,也就是无法用于离线或者后续的分析。而perf record则提供了保存数据的功能,保存后的数据,需要用perf report 解析展示。

#21515是进程号
perf top -g -p 21515

小结

  • 用户CPU和Nice CPU高,说明用户态进程占用了较多的CPU,所以应该着重排查进程的性能问题。
  • 系统CPU高,说明内核态占用了较多的CPU,所以应该着重排查内核线程或者系统调用的性能。
  • I/O等待CPU高,说明I/O时间比较长,所以应该着重排查系统存储是不是出现了I/O问题。
  • 软中断和硬中断高,说明软中断或硬中断的处理程序占用了较多的CPU,所以应该着重排查内核中的中断服务程序。

碰到CPU使用率升高的问题,可以借助top,pidstat工具,确认引发CPU性能问题的来源,再使用perf等工具,排查出引起性能问题的具体函数。

标签:1.00,15,利用率,100%,45,CPU,dmserver,0.00
From: https://www.cnblogs.com/lixiaomeng/p/18170733

相关文章

  • 揭秘微机大脑——CPU的奥秘
    在微机的众多部件中,中央处理器(CPU)无疑占据着核心地位。人们常把它比作计算机的大脑,因为它负责解读和执行指令,处理数据,以及控制所有其他部件的协调工作。今天,我们就一起探索这个微机心脏的奥秘。CPU,即CentralProcessingUnit,是一块集成了数以亿计晶体管的芯片,这些晶体管通过精密......
  • 最好用的AI换脸软件,rope下载介绍(支持cpu)
    随着AI技术的广泛运用,市面上的换脸软件也多了起来,今天给各位介绍其中的王者Rope!先上两个动图,给大伙看看效果rope是如何实现这种自然的效果呢?这得益于机器学习技术的不断发展,rope经过深度神经网络的无数次迭代优化,最终得出的模型可以自动学习和识别视频中的人脸特征,它可以在不......
  • 2024年信创CPU的最新性能概览
    2024年信创CPU的最新性能概览摘要本次没有具体测试数据,只是从产品发展的方面进行简单概括.部分为捕风捉影无法确保数据真实最新的性能情况1.关于飞腾飞腾S5000C的官方测试参数,无限制接近了鲲鹏920坊间传闻飞腾于华为达成了某种合作.公司某项目使用S5000C后......
  • PC-100垂直拉制仪使用指南
    序言  现在大部分的实验室配置的都是水平拉制仪(大部分是Sutter的P-97和P-1000)的普及,很多新的实验室也没有人配备垂直拉制仪,但是垂直拉制仪在制备锥度较长的吸附针呀、注射病毒这种用途时,比水平拉制仪更具优势,有时候,在水平拉制仪出故障或者比较急时,一些实验室也会使用垂直拉制仪......
  • C#开发的CPU使用率小应用 - 开源研究系列文章 - 个人小作品
          这次用C#编写一个CPU使用率的小应用。想了一下,大概需要两个内容:一个是获取CPU使用率;一个是托盘图标的动画效果。这两个内容在上次的博文中有介绍了,此博文为具体的应用的例子。      对于要实现的应用,首先需要先研究下其需要什么技术内容,然后一个个的去研究及......
  • ES Validation Failed: 1: this action would add [1] shards, but this cluster c
    [2024-05-01T08:56:52,606][ERROR][o.e.x.i.IndexLifecycleRunner][tools]policy[ilm-history-ilm-policy]forindex[.ds-ilm-history-5-2024.03.28-000001]failedonstep[{"phase":"hot","action":"rollover","name&qu......
  • Unity性能分析(二)CPU/GPU分析
    设置每帧时间预算帧率(fps)并不是衡量游戏稳定体验的理想指标。考虑以下情况:在运行时的前0.75s内渲染了59帧。然后接下来的1帧需要0.25s才能渲染完毕。虽然是60fps,但实际上会让玩家感觉卡顿。这是需要设置帧时间预算的重要原因之一。这为您提供了一个目标,在对游戏进行分析和优化时......
  • 这种运行结果里的10.100000001,怎么能最快改成10.1?
    大家好,我是Python进阶者。一、前言前几天在Python白银交流群【无敌劈叉小狗】问了一个Python基础的问题。问题如下:这种运行结果里的10.100000001,怎么能最快改成10.1,所有结果都最多一位小数。二、实现过程这里【论草莓如何成为冻干莓】和【.】给了一个指导:用round函数或者’%.......
  • 项目中如何跟踪资源利用率
    发展业务和服务是每个组织的首要任务。但是,仅仅把资源分配到项目上并不能确保会有高效率的工作产出。为了达到最高效率,这些资源必须在可以计费的或有战略意义的工作上得到有效利用。资源利用率是衡量项目是否成功的一个关键指标。通过跟踪资源如何被利用,可以确保组织内的每项资源......
  • C#获取CPU使用率 - 开源研究系列文章
          这次想编写一个CPU使用率的小应用,于是就用此例子来记录了这个代码。下面是源码:usingSystem;usingSystem.Diagnostics;usingSystem.Windows.Forms;namespaceWindowsFormsApp{publicpartialclassForm1:Form{///<summary>......