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

[root@domainX ~]# 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

[root@domainX ~]# 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

CPU性能分析的更多相关文章

  1. CPU性能分析工具原理

    转载请保留以下声明 作者:赵宗晟 出处:https://www.cnblogs.com/zhao-zongsheng/p/13067733.html 很多软件都要做性能分析和性能优化.很多语言都会有他 ...

  2. AMD Cpu 性能分析

    未完待续... 首先,几款APU系列的cpu: A8-: 一款低功耗的移动版处理器,四核心主频最高2.5GHz,二级缓存2MB, 图形核心Radeon R5 内存频率DDR3-1866,热设计功耗12 ...

  3. Linux vmstat命令--监控CPU 性能分析

    top是给Linux设计的.在FreeBSD VM里面的Free概念和其他OS完全不同,使用top查看Free内存对于FreeBSD来说可以说没什么意义.正确的方法是看vmstat. vmstat是V ...

  4. Linux性能优化:CPU性能分析工具--vmstat

    Blog:博客园 个人 目录 参数说明 输出信息说明 procs memory swap io system cpu 示例 vmstat是Virtual Meomory Statistics(虚拟内存 ...

  5. 性能分析神器VisualVM

    VisualVM 是一款免费的,集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优.这些功能包括生成和分析海量数据.跟踪内存泄漏.监控垃圾回 ...

  6. OProfile 性能分析工具

    OProfile 性能分析工具 官方网站:http://oprofile.sourceforge.net/news/ oprofile.ko模块本文主要介绍Oprofile工具,适用系统的CPU性能分 ...

  7. VisualVM 性能分析概述

    VisualVM是一个免费的Java应用监控.分析工具. 简单说来,VisualVM是一种集成了多个JDK命令行工具的可视化工具,它能为您提供强大的分析能力.所有这些都是免费的!它囊括的命令行工具包括 ...

  8. Java application 性能分析分享

    性能分析的主要方式 监视:监视是一种用来查看应用程序运行时行为的一般方法.通常会有多个视图(View)分别实时地显示 CPU 使用情况.内存使用情况.线程状态以及其他一些有用的信息,以便用户能很快地发 ...

  9. Linux下性能分析工具汇总

    来自:http://os.51cto.com/art/201104/253114.htm 本文讲述的是:CPU性能分析工具.Memory性能分析工具.I/O性能分析工具.Network性能分析工具. ...

随机推荐

  1. 学习excel的使用技巧四显示正常的数字

    记得之前在excel中输入一些数字比如输入手机号 就会变成1.E几类似这种 那么怎样显示正常的数字呢 先选中要操作的输入框 1  找到 数字 这个功能的地方 2 设置为 数值  并且小数点为0 3  ...

  2. java编程思想(1)--对象导论

    对象导论: 1.1 抽象过程 所有的语言都有抽象机制,抽象是解决复杂问题的根本方法.例如:汇编语言是对底层机器的轻微抽象.命令式语言(如:FORTRAN.BASIC.C)又是对汇编语言的抽象. jav ...

  3. python——数字问题之_ 变量

    在交互模式中,最后被输出的表达式结果被赋值给变量 _ ._ 变量应被用户视为只读变量 >>> a=12/2.3 >>> b=1.2 >>> a*b ...

  4. ABAP-表中数据的横向累加

    GLT0 等表中数据的横向累加 ——塞依SAP培训   在 ABAP 的 GLT0.FAGLFLEXT 等余额表中,用诸如 TSL01.TSL02 …… TSL16 等字段记录了 16 个期间的发生额 ...

  5. TCP与UDP,可靠UDP如何实现

    两种协议都是传输层协议,为应用层提供信息载体. TCP协议是基于连接的字节流的可靠协议,有三次握手,四次挥手,超时重传,流量控制(滑动窗口),拥塞控制和差错控制,也正因为有可靠性的保证和控制手段,所以 ...

  6. springboot+mybatis+freemark+oauth开发环境搭建

    一.创建springboot工程 1.环境介绍: a:jdk版本:1.7 b:Springboot版本:1.5.6(使用1.5.9的版本整合mybatis会报错:java.lang.NoClassDe ...

  7. RDD认知

    1.RDD又叫弹性分布式数据集 2.抽象 3.带泛型,支持多种数据类型 4.集合是可以进行分区 例如(1,2,3,4,5,6,7,8,9)这个数组是可以进行分区的(1,2,3)  (4,5,6)  ( ...

  8. VUE项目小试牛刀

    首先安装webstorm:http://www.jetbrains.com/webstorm/  (推荐) 再安装node.js:https://nodejs.org/en/download/  (必 ...

  9. 优化linux,安装node环境

    就是这样我的心爱的云主机就被攻击了,反正我是很久没宠幸过她,肯定不是我去攻击人家,但是吧昨天就突然来了封邮件,小白一个查不出什么,用了 netsat -na显示所有连接到服务器的活跃的网络连接数,发现 ...

  10. 虚拟机下 centos7 无法连接网络

    [root@localhost ~]# cd /etc/sysconfig/network-scripts [root@localhost network-scripts]# ls ifcfg-ens ...