Chinaunix首页 | 论坛 | 博客
  • 博客访问: 188888
  • 博文数量: 16
  • 博客积分: 552
  • 博客等级: 中士
  • 技术积分: 236
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-28 16:41
文章分类

全部博文(16)

文章存档

2012年(1)

2011年(12)

2010年(3)

分类: LINUX

2012-01-14 02:33:01

最近忙一些performance的工作,网上搜集了一些资料,整理一下。

CPU Utilization:
就是在一段时间内,进程对CPU的真正使用的时间总和除以统计时间。 占用不等于使用。 比如说一个进程占用CPU 60s, 前20秒运行,中间10秒等待IO,后面有运行20秒,然后再等IO 10秒。则它对CPU的真正使用时间其实只有40秒。 那么当这个值比较高时,就表示对CPU使用可能超负荷了。

Load Average:
它是一段时间内,对CPU正在处理的进程以及等待处理的进程数之和的统计信息, 也就是CPU使用队列的长度的统计信息。如果这个统计新过高,那么就说明对CPU这个资源的竞争就激烈,那么就需要CPU长期高负荷的运行进程。所以负载均衡从一个角度反映了CPU的使用情况。

核和单CPU的关系就是1对1的关系。 1个CPU两个核等同于两个单独的CPU。
单CPU的load average合理值就是 1*0.7。
多CPU或者多核的情况下,就是总数n*1-2。

详细可以参考 理解Load Average做好压力测试

Context Switch Rate:
这个顾名思义就是进程的切换或者中断导致上下文切换。切换的越频繁也就越影响系统的性能。资源都被用来做保护现场了。


下面是对CPU性能分析常用的命令

首先要查看CPU的物理信息,cat /proc/cpuinfo
其中重要的信息有
processor: 逻辑CPU的标识号, 文件中processor出现的次数代表有多少个逻辑CPU
physical id: 物理CPU的标识号,具有相同此标识号的core或线程都被封装于这个物理CPU
cpu core: core所在的CPU具有几个core
core id:  core的标识号, 具有相同core id就表示超线程被打开
sibling:  core所在的CPU有几个逻辑处理核,如果他的值大于cpu core也说明超线程被打开

逻辑CPU个数:
cat /proc/cpuinfo | grep processor | wc -l

物理CPU个数:
cat /proc/cpuinfo | grep "physical id" | sort -u | wc -l

core的总数:
cat /proc/cpuinfo | grep "core id" | uniq | wc -l

查看Load average 信息:
top/uptime 都可看到
[root@rhel61x64 ~]# uptime 
 10:51:09 up 2 days, 14:21,  5 users,  load average: 2.18, 2.20, 2.09
[root@rhel61x64 ~]# 

[root@rhel61x64 ~]# cat /proc/loadavg 
1.98 2.11 2.07 1/8195 3606
[root@rhel61x64 ~]# 

前三个值表示在1分钟,5分钟,15分钟的系统平均进程数。 1/8195 分子代表正在运行的进程数,分母表示总的进程数, 3606 表示上一次运行的进程号

vmstat 查看系统负载:

[root@rhel61x64 ~]# vmstat 
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  1 632700  89712    332   5912   41   17   132    18    1   57  0  2 82 15  0
 
procs
r 表示所有等待运行时间的进程数,如果长期大于1说明CPU资源不够
b 表示等待资源的进程数,比如IO和内存交换

system
in 每秒钟中断的总数包括时钟中断
cs 每秒中context switch的次数

cpu
us CPU运行uer process的时间
sy CPU运行kernel code的时间
id CPU空闲的时间
wa 等待IO的时间
st CPU从虚拟机偷来的时间
st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.







阅读(6458) | 评论(0) | 转发(0) |
0

上一篇:Shell 快捷键

下一篇:没有了

给主人留下些什么吧!~~