Linux系统性能分析——CPU

一、引言
Linux系统的性能分析,基本上是分为CPU、内存、磁盘IO、网络这几个部分。

本篇介绍CPU的性能分析。

二、CPU信息
1、 /proc/cpuinfo
Linux系统性能分析——CPU_第1张图片
具体参数:
processor :系统中逻辑处理器唯一标识
vendor_id :CPU制造商
cpu family : CPU产品系列代号
model   :CPU属于其系列中的哪一代的代号
model name:CPU属于的名字及其编号、标称主频
cpu MHz  :CPU的实际使用主频
physical id :每个物理封装的唯一标识
core id :一个物理封装中每个内核的唯一标识
siblings :一个物理封装上逻辑处理器个数
cpu cores :一个物理封装中内核数量(超线程技术可以使1个内核分为2个逻辑处理器)
2、lscpu
Linux系统性能分析——CPU_第2张图片

3、dmidecode
Linux系统性能分析——CPU_第3张图片
使用说明:
#dmidecode -t processor
还可以查看其他参数:
Linux系统性能分析——CPU_第4张图片

三、CPU使用情况
1、top
Linux系统性能分析——CPU_第5张图片
具体参数:
load average: 0.77, 0.87, 0.72:系统负载,即任务队列的平均长度。三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。数值越高负载越重,一般要求最好不要超过cpu的核数。
total:进程总数
running:正在运行的进程数
sleeping:睡眠的进程数
stopped:停止的进程数
zombie: 僵尸进程数
Cpu(s):
0.7% us(user mode) :用户空间占用CPU百分比
0.2% sy(system mode) :内核空间占用CPU百分比
0.0% ni(low priority user mode) :用户进程空间内改变过优先级的进程占用CPU百分比
99.1% id(idle task) :空闲CPU百分比
0.0% wa(I/O wait) :等待输入输出的CPU时间百分比
0.0%hi(servicing IRQs):硬件CPU中断占用百分比
0.0%si(servicing soft IRQs):软中断占用百分比
0.0%st(steal):虚拟机占用百分比
2、vmstat
Linux系统性能分析——CPU_第6张图片
使用说明:
#vmstat [delay [count]]
delay :相邻的两次采样的间隔时间、
count :采样的次数,count只能和delay一起使用
具体参数:
r:表示在cpu运行队列中等待的进程数。如果这个值很大,则说明很多进程在排队等待执行。
in、cs:分别代表中断次数和上下文切换次数。这两个值越大,代表系统在进行大量的进程切换。这说明我们的进程数(或者线程数)太大,导致系统不断的在切换进程,应该尽量减少进程或线程数量。
us、sy、id、wa:这四个值分别代表用户进程、系统进程、空闲和等待的cpu时间占比。
3、mpstat
Linux系统性能分析——CPU_第7张图片
使用说明:
#mpstat [-P {|ALL}] [internal [count]]
-P {|ALL} :表示监控哪个CPU, cpu在[0,cpu个数-1]中取值
internal :相邻的两次采样的间隔时间、
count :采样的次数,count只能和delay一起使用
具体参数:
%usr:在internal时间段里,用户态的CPU时间(%),不包含nice值为负进程 (usr/total)*100
%sys:在internal时间段里,内核时间(%) (system/total)*100
%nice:在internal时间段里,nice值为负进程的CPU时间(%) (nice/total)*100
%iowait:在internal时间段里,硬盘IO等待时间(%) (iowait/total)*100
%irq:在internal时间段里,硬中断时间(%) (irq/total)*100
%soft:在internal时间段里,软中断时间(%) (softirq/total)*100
%idle:在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间(%) (idle/total)*100
4、iostat
Linux系统性能分析——CPU_第8张图片
具体参数:
%user:在internal时间段里,用户态的CPU时间(%),不包含nice值为负进程 (usr/total)*100
%system:在internal时间段里,内核时间(%) (system/total)*100
%nice:在internal时间段里,nice值为负进程的CPU时间(%) (nice/total)*100
%iowait:在internal时间段里,硬盘IO等待时间(%) (iowait/total)*100
%idle:在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间(%) (idle/total)*100
5、uptime
uptime
具体参数:
load average: 0.85, 0.86, 0.74:系统负载,即任务队列的平均长度。三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。数值越高负载越重,一般要求最好不要超过cpu的核数
6、ps和pstree
ps:
Linux系统性能分析——CPU_第9张图片
pstree:
Linux系统性能分析——CPU_第10张图片

三、单独进程CPU分析
1、strace
用来分析进程系统调用的:
Linux系统性能分析——CPU_第11张图片
还可以通过PID分析:
#strace -p PID
2、jstack
java提供的用来分析java进程的工具,可以看当前进程的线程栈调用情况。
文章部分内容参考:http://www.simplemain.com/article/

你可能感兴趣的:(linux性能分析)