目录

一 CPU性能指标

1、主频

2、外频

3、倍频系数

4、前端总线频率

5、位和字长

6、缓存

7、cpu指令集

8、内核和电压

9、制造工艺

二 密集型进程

三 模拟大量进程


一 CPU性能指标

1、主频

也就是CPU的时钟频率,简单地说也就是CPU的工作频率。
一般说来,一个时钟周期完成的指令数是固定的,所以主频越高,CPU的速度也就越快了。不过由于各种CPU的内部结构也不尽相同,所以并不能完全用主频来概括CPU的性能。
主频和实际的运算速度是有关的,只能说主频仅仅是CPU性能表现的一个方面,而不代表CPU的整体性能。

2、外频

外频是CPU的基准频率,单位是MHz。CPU的外频决定着整块主板的运行速度。通俗地说,在台式机中,所说的超频,都是超CPU的外频(当然一般情况下,CPU的倍频都是被锁住的)相信这点是很好理解的。
但对于服务器CPU来讲,超频是绝对不允许的。前面说到CPU决定着主板的运行速度,两者是同步运行的,如果把服务器CPU超频了,改变了外频,会产生异步运行,这样会造成整个服务器系统的不稳定。

3、倍频系数

倍频系数是指CPU主频与外频之间的相对比例关系。在相同的外频下,倍频越高CPU的频率也越高。但实际上,在相同外频的前提下,高倍频的CPU本身意义并不大。
这是因为CPU与系统之间数据传输速度是有限的,一味追求高倍频而得到高主频的CPU就会出现明显的“瓶颈”效应——CPU从系统中得到数据的极限速度不能够满足CPU运算的速度。

4、前端总线频率

前端总线(FSB)频率(即总线频率)是直接影响CPU与内存直接数据交换速度。有一条公式可以计算,即数据带宽=(总线频率×数据位宽)/8,数据传输最大带宽取决于所有同时传输的数据的宽度和传输频率。

5、位和字长

位:在数字电路和电脑技术中采用二进制,代码只有“0”和“1”,其中无论是 “0”或是“1”在CPU中都是 一“位”。
字长:电脑技术中对CPU在单位时间内(同一时间)能一次处理的二进制数的位数叫字长。所以能处理字长为8位数据的CPU通常就叫8位的CPU。同理32位的CPU就能在单位时间内处理字长为32位的二进制数据。

6、缓存

缓存大小也是CPU的重要指标之一,而且缓存的结构和大小对CPU速度的影响非常大,CPU内缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统内存和硬盘。

7、cpu指令集

CPU依靠指令来计算和控制系统,每款CPU在设计时就规定了一系列与其硬件电路相配合的指令系统。指令的强弱也是CPU的重要指标,指令集是提高微处理器效率的最有效工具之一。

8、内核和电压

从586CPU开始,CPU的工作电压分为内核电压和I/O电压两种,通常CPU的核心电压小于等于I/O电压。其中内核电压的大小是根据CPU的生产工艺而定,一般制作工艺越小,内核工作电压越低;I/O电压一般都在1.6~5V。低电压能解决耗电过大和发热过高的问题。

9、制造工艺

制造工艺的微米是指IC内电路与电路之间的距离。制造工艺的趋势是向密集度愈高的方向发展。密度愈高的IC电路设计,意味着在同样大小面积的IC中,可以拥有密度更高、功能更复杂的电路设计。主要的180nm、130nm、90nm、65nm、45纳米。

二 密集型进程

1、在第一个终端输入以下命令:stress --cpu 1 --timeout 600

压测Es cpu飙升_运维

stress命令使用详解

2、在第二个终端输入watch -d uptime 实时查看平均负载变化情况:

压测Es cpu飙升_cpu_02

watch命令使用详解

3、在第三个终端运行mpstat查看CPU使用率的变化情况:

在第二个终端可以看到,1分钟的平均负载会慢慢增加到1.00,而从第三个终端可以看到正好有一个CPU的使用率为100%,但是它的iowait只有0。说明平均负载的升高正式由于CPU使用率为100%.

压测Es cpu飙升_upload_03

mpstat命令使用详解

4、使用pidstat -u 5 1查看哪个进程导致CPU使用率为100%:

压测Es cpu飙升_linux_04

可以看到PID为110421的stress进程导致CPU使用率为100%。

pidstat命令使用详解

三 模拟大量进程

1、首先查看系统CPU核数,再在第一个终端输入以下命令:stress -c 16  --timeout 600:

压测Es cpu飙升_linux_05

2、在第二个终端输入watch -d uptime实时查看平均负载的变化情况:

 

压测Es cpu飙升_linux_06

由于系统只有8个CPU,明显比16个进程要少,因而系统的CPU处于严重过载的状态,平均负载高达15.75。

3、接着再运行pidstat看下进程的情况:

 

压测Es cpu飙升_运维_07

可以看出,16个进程在争抢8个CPU,每个进程等待CPU的时间(上面的%wait列)高达50%多。超出CPU计算能力,最终导致CPU过载。