CPU性能分析

CPU性能分析工具

lscpu:查看CPU硬件信息

lscpu

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    1
Socket(s):             4
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 58
Model name:            Intel(R) Xeon(R) CPU E5-2690 v2 @ 3.00GHz
Stepping:              0
CPU MHz:               2999.498
BogoMIPS:              6000.00
Hypervisor vendor:     VMware
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              25600K
NUMA node0 CPU(s):     0-3
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 syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm fsgsbase tsc_adjust smep arat

lscpu:命令可以查看当前CPU配置信息,包括处理器型号以及核心数缓存等信息,CPU相当于人体的大脑,在系统中起着非常重要的作用,CPU性能越高,处理任务的能力就越强。

sar/top/uptime/mpstat/vmstat:CPU性能分析工具

sar命令

? sar命令是系统管理员必须掌握的一项重要技能,sar命令可以用来分析几乎所有的系统信息,这就要求我们不得不掌握。

  • 安装sar命令

yum -y install sysstat

  • 使用sar命令分析CPU负载

sar -u

[[email protected] ~]# sar -u
Cannot open /var/log/sa/sa30: No such file or directory

如果出现以上的报错,是因为sar命令还没有创建当天的文件,sar会将数据写入到/var/log/sa目录下,如果需要也可以从该目录下读取响应时间段的日志进行分析,当出现以上报错时执行sar -o 1来创建相应文件即可,创建文件后可以正常使用该命令。

sar -u

Linux 3.10.0-693.el7.x86_64 (domainX.com)   01/30/2019  _x86_64_    (4 CPU)

06:34:32 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
06:34:33 AM     all      5.00      0.00      3.75      0.00      0.00     91.25
06:34:34 AM     all      4.24      0.00      4.24      0.00      0.00     91.52
06:34:35 AM     all      4.77      0.00      3.52      0.00      0.00     91.71
06:34:36 AM     all      4.51      0.00      3.51      0.00      0.00     91.98
06:34:37 AM     all      5.01      0.00      3.51      0.00      0.00     91.48
06:34:37 AM     all      6.84      0.00      5.70      0.00      0.00     87.45
06:40:01 AM     all      4.84      0.00      3.53      0.00      0.00     91.62
Average:        all      4.84      0.00      3.54      0.00      0.00     91.61
  • %user 用户模式下消耗的CPU时间的比例;
  • %nice 通过nice改变了进程调度优先级的进程,在用户模式下消耗的CPU时间的比例
  • %system 系统模式下消耗的CPU时间的比例;
  • %iowait CPU等待磁盘I/O导致空闲状态消耗的时间比例;
  • %steal 利用Xen等操作系统虚拟化技术,等待其它虚拟CPU计算占用的时间比例;
  • %idle CPU空闲时间比例。

sar -u 执行时长 执行次数:使用详细参数可以获得自己需要的详细信息,如果只输入一个参数,将会一直执行。

top命令

? top命令应该是工作中使用频率较高的命令,主要可以用来分析当前系统上运行的进程占用CPU内存百分比等详情,要注意的是top命令是动态的。
top

top - 06:59:35 up 5 days,  1:50,  1 user,  load average: 1.01, 1.03, 0.87
Tasks: 196 total,   1 running, 195 sleeping,   0 stopped,   0 zombie
%Cpu0  :  4.3 us,  4.6 sy,  0.0 ni, 91.1 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  8.0 us,  2.3 sy,  0.0 ni, 89.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  :  4.0 us,  4.3 sy,  0.0 ni, 91.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :  3.3 us,  3.0 sy,  0.0 ni, 93.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  3865308 total,   219532 free,   903832 used,  2741944 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  2461924 avail Mem

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 18216 polkitd   20   0  618040  15924   5344 S   7.0  0.4 404:15.95 polkitd
  4564 vnc       20   0 3708324 387844  70204 S   6.6 10.0 340:10.11 gnome-shell
   729 dbus      20   0   63620   3752   1872 S   2.3  0.1 139:20.52 dbus-daemon
  3904 root      20   0  396292   6064   3184 S   2.0  0.2  98:04.54 accounts-daemon
  4687 vnc       20   0  456552   3364   2736 S   0.7  0.1  37:05.68 gsd-account
  4700 vnc       20   0  712568  15436   9560 S   0.3  0.4   1:38.53 gsd-color
     1 root      20   0  193920   6984   4048 S   0.0  0.2   0:19.82 systemd
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.08 kthreadd
     3 root      20   0       0      0      0 S   0.0  0.0   0:04.29 ksoftirqd/0
     5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H
     7 root      rt   0       0      0      0 S   0.0  0.0   0:29.91 migration/0
     8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh
     9 root      20   0       0      0      0 S   0.0  0.0   3:32.82 rcu_sched
    10 root      rt   0       0      0      0 S   0.0  0.0   0:01.54 watchdog/0
    11 root      rt   0       0      0      0 S   0.0  0.0   0:01.48 watchdog/1
    12 root      rt   0       0      0      0 S   0.0  0.0   0:29.17 migration/1
    13 root      20   0       0      0      0 S   0.0  0.0   0:04.12 ksoftirqd/1
    15 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/1:0H
    16 root      rt   0       0      0      0 S   0.0  0.0   0:01.51 watchdog/2
    17 root      rt   0       0      0      0 S   0.0  0.0   0:29.48 migration/2
    18 root      20   0       0      0      0 S   0.0  0.0   0:03.82 ksoftirqd/2
    20 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/2:0H
    21 root      rt   0       0      0      0 S   0.0  0.0   0:01.50 watchdog/3
    22 root      rt   0       0      0      0 S   0.0  0.0   0:29.93 migration/3
    23 root      20   0       0      0      0 S   0.0  0.0   0:04.09 ksoftirqd/3
    25 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/3:0H
    27 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kdevtmpfs
    28 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 netns
    29 root      20   0       0      0      0 S   0.0  0.0   0:00.28 khungtaskd
    30 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 writeback
    31 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kintegrityd
    32 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 bioset
    33 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kblockd
    34 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 md
    40 root      20   0       0      0      0 S   0.0  0.0   0:00.14 kswapd0
    41 root      25   5       0      0      0 S   0.0  0.0   0:00.00 ksmd
    42 root      39  19       0      0      0 S   0.0  0.0   0:01.88 khugepaged
    43 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 crypto

在top动态界面中按大写的P可以以进程的CPU占用从高到低进行排序,方便我们在CPU使用率非常高的情况下快速定位到是那个进程导致的,按大写的M将会以进程内存占用百分比由高到低进行排序,按1将会显示当前所有CPU的使用情况。顺便说下这个命令吧,也比较常用。ps -aux --sort -pcpu是按照CPU占用进行排序。

uptime命令

? uptime命令非常简单,只是用来看系统运行的负载情况以及时间,没什么可以详细讲解的。需要我们注意的是load average给出的三个值分别代表系统1分钟、5分钟以及15分钟的负载情况,如果第一个值负载很低,第三个值负载很高,那就表明15分钟前系统的负载很高,但是现在已经恢复了,具体数值多少用来评价负载的高低呢,这个没有一个准确的数字,正常情况下是和CPU核心数成正比的,例如:4C服务器当负载达到4时已经非常高了。

mpstat命令

? 使用此命令得到的数据和以上数据信息类似,这里也就不详细解释数据的参数了。mpstat

[[email protected] ~]# mpstat
Linux 3.10.0-693.el7.x86_64 (domainX.com)   01/30/2019  _x86_64_    (4 CPU)

07:04:31 AM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
07:04:31 AM  all    3.83    0.00    2.66    0.01    0.00    0.10    0.00    0.00    0.00   93.40

vmstat命令

? vmstat命令与mpstat命令类似,vmstat命令也提供了很多重要的系统信息,所以我们需要对输出内容有一定的了解。
vmstat

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      0 219660   4708 2737284    0    0     1     2    3   22  4  3 93  0  0
  • procs:b这列表示的是不可中断睡眠的进程,这个数值往往与磁盘IO有关。
  • system:in/cs数值偏高说明系统繁忙。
  • CPU:st资源在虚拟化环境中比较重要,例如st数值偏高可能是物理主机上运行了太多虚拟机导致。

geekbench:CPU压测工具

? 一个商业化软件,可以对CPU性能进行压测,最终生成web版界面评分,感兴趣的同学可以执行下面的命令在Linux 7系列上进行安装。
sudo yum -y install glibc.i686 libstdc++ libstdc++.i686
sudo wget http://qiniu.pasca.top/Geekbench-4.3.0-Linux.tar.gz
sudo tar xf Geekbench-4.3.0-Linux.tar.gz
cd Geekbench-4.3.0-Linux/
./geekbench_x86_64

原文地址:https://www.cnblogs.com/Cherry-Linux/p/10339709.html

时间: 2024-10-11 04:59:46

CPU性能分析的相关文章

PC VR游戏的CPU性能分析与优化

自从三大头显厂商Oculus,HTC和SONY在2016年发布了虚拟现实(VR)头显产品后,由于能够带来卓越的沉浸式体验,VR越来越受到市场的关注和重视,而VR也被认为会取代智能手机成为下一代的计算平台.然而,尽管虚拟现实能给用户带来身临其境般的沉浸式体验,但相比传统应用,其具有双目渲染.低延迟.高分辨率以及高帧率等严苛要求,因此极大地增加了 CPU 和 GPU 的计算负载.鉴于此,性能问题对于虚拟现实应用尤为重要,因为VR体验如果没有经过优化,容易出现掉帧等问题,让用户使用时发生眩晕的情况.在

三种Linux性能分析工具的比较

无论是在CPU设计.服务器研发还是存储系统开发的过程中,性能总是一个绕不过去的硬指标.很多时候,我们发现系统功能完备,但就是性能不尽如意,这时候就需要找到性能瓶颈.进行优化.首先我们需要结合硬件特点.操作系统和应用程序的特点深入了解系统内部的运行机制.数据流图和关键路径,最好找出核心模块.建立起抽象模型:接着需要利用各种性能分析工具,探测相关模块的热点路径.耗时统计和占比.在这方面,Linux操作系统自带了多种灵活又具有专对性的工具,此外一些厂家也开源了不少优秀的性能分析工具.下面就结合笔者最近

转 性能分析工具汇总

一.分析工具   1.CPU性能分析工具: vmstat ps sar time strace pstree top 2.Memory性能分析工具: vmstat strace top ipcs ipcrm cat /proc/meminfo cat /proc/slabinfo cat /proc//maps 3.I/O性能分析工具: vmstat ipstat repquota quotacheck 4.Network性能分析工具: ifconfig ethereal tethereal i

Java application 性能分析分享

性能分析的主要方式 监视:监视是一种用来查看应用程序运行时行为的一般方法.通常会有多个视图(View)分别实时地显示 CPU 使用情况.内存使用情况.线程状态以及其他一些有用的信息,以便用户能很快地发现问题的关键所在. 转储:性能分析工具从内存中获得当前状态数据并存储到文件用于静态的性能分析.Java 程序是通过在启动 Java 程序时添加适当的条件参数来触发转储操作的.它包括以下三种: 系统转储:JVM 生成的本地系统的转储,又称作核心转储.一般的,系统转储数据量大,需要平台相关的工具去分析,

性能分析神器VisualVM

VisualVM 是一款免费的,集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优.这些功能包括生成和分析海量数据.跟踪内存泄漏.监控垃圾回收器.执行内存和 CPU 分析,同时它还支持在 MBeans 上进行浏览和操作.本文主要介绍如何使用 VisualVM 进行性能分析及调优. 目录: 准备工作 内存分析篇 内存堆Heap 永久保留区域PermGen CPU分析篇 线程分析篇 参考文献 准备工作 自从 JDK 6 Update 7 以

OProfile 性能分析工具

官方网站:http://oprofile.sourceforge.net/news/ oprofile.ko模块本文主要介绍Oprofile工具,适用系统的CPU性能分析,最主要它能深入内核函数,这是很多用户态工具达不到的地方. Oprofile是一个内核态工具,通过oprofile.ko模块内核模块来获取数据需要在加载oprofile.ko模块的时候,传递”timer=1″参数. modprobe oprofile timer=1 oProfilehttp://baike.baidu.com/

VisualVM 性能分析概述

VisualVM是一个免费的Java应用监控.分析工具. 简单说来,VisualVM是一种集成了多个JDK命令行工具的可视化工具,它能为您提供强大的分析能力.所有这些都是免费的!它囊括的命令行工具包括jstat, JConsole, jstack, jmap 和 jinfo,这些工具与JDK的标准版本是一致的. 你可以使用VisualVM生成和分析海量数据.跟踪内存泄漏.监控垃圾回收器.执行内存和CPU分析,同时它还支持在MBeans上进行浏览和操作.尽管VisualVM自身要在JDK6这个版本

Intel台式机CPU性能对比分析(不定期更新)

Intel台式机CPU性能对比(综合) 双核-四核CPU(综合) 型号 主频/睿频 核心/线程 制程 功耗 三级Cache 核显 内存控制 i7-6700K 4.0/4.2GHz 4/8 14nm 95W 8MB HD 530 DDR4-2133 i7-6700 3.4/4.0GHz 4/8 14nm 65W 8MB HD 530 DDR4-2133 i7-6700T 2.8/3.6GHz 4/8 14nm 35W 8MB HD 530 DDR4-2133 i7-4790K 4.0/4.4GHz

性能调优:CPU消耗分析

转载请注明出处: http://blog.csdn.net/supera_li/article/details/45221367 cpu消耗分析总体概要图 一张思维导向图,不用说了. top命令,请查阅这篇 http://blog.csdn.net/supera_li/article/details/45220205 pidstat命令,请查阅这篇 http://blog.csdn.net/supera_li/article/details/45221211 参考资料: [1]java分布式应用