[转帖]【学习笔记】Linux下CPU性能评估

学习,笔记,linux,cpu,性能,评估 · 浏览次数 : 0

小编点评

**1. CPU性能评估** * **procs**:进程数,表示运行和等待CPU时间片的进程数量。长期大于系统CPU的个数,就说明CPU不足,需要增加CPU。 * **memory**:内存使用情况,表示当前空闲的物理内存大小。 * **swap**:swap使用情况,表示由磁盘调入内存的数量和由内存调入磁盘的数量。 **2. sar监控CPU使用情况** * **%user**:用户进程占用 CPU时间的百分比。 * **%nice**:运行正常进程占用 CPU时间的百分比。 * **%system**:系统进行的 CPU 占用时间的百分比。 * **%iowait**:IO等待占用 CPU时间的百分比。 * **%steal**:在内存相对紧张的环境下强制对不同的页面进行steal 操作的百分比。 * **%idle**:CPU处在空闲状态的时间百分比。 **3. iostat监控CPU使用情况** * **%user**:显示系统现在的用户 CPU 使用时间。 * **%nice**:显示运行正常进程的 CPU 使用时间。 * **%system**:显示系统进行的 CPU 使用时间。 * **%iowait**:显示当前系统对磁盘的 I/O 使用时间。 * **%steal**:显示系统对内存中不同页面页面的 steal 时间。 **4. uptime监控CPU使用情况** * **load average**:系统现在运行的 CPU 核心数的平均负载。如果长期大于 CPU 的个数,则说明CPU繁忙,负载高,可能会影响系统性能。

正文

Linux下CPU性能评估

1、 vmstat监控CPU使用情况


【说明】

procs:

l  r表示运行和等待CPU时间片的进程数,这个值如果长期大于系统CPU的个数,就说明CPU不足,需要增加CPU。

l  b表示在等待资源的进程数,比如正在等待I/O或者内存交换等。

memory:

l  swpd:表示切换到内存交换区的内存数量(以kB为单位).如果swpd的值为0或者比较大,而且si、so的值长期为0,那么这种情况下,一般不用担心,不会影响系统性能。

l  free:表示当前空闲的物理内存大小(以kB为单位)

l  buff:表示buffers cache的内存数量,一般对块设备的读写才需要缓冲。

l  cache:表示page cached的内存数量,一般作为文件系统cached,频繁访问的文件都会被cached。如果cache值较大,就说明cached的文件数较多。如果此时IO中bi比较小,就说明文件系统效率比较高。

swap:

l  si:表示由磁盘调入内存,也就是内存进入内存交换区的数量

l  so:表示由内存调入磁盘,也就是内存交换区进入内存的数量

一般情况下,si、so的值都为0,如果si、so的值长期不为0,则表示系统内存不足,需要增加系统内存。

io:显示磁盘读写状况

l  bi:表示从块设备读入数据的总量(即读磁盘)(每秒KB)

l  bo:表示写入块设备的数据总量(即写磁盘)(每秒KB)

这里设置的bi+bo的参考值为1000,如果超过1000,而且wa值较大,则表示系统磁盘IO有问题,应该考虑提高磁盘的读写性能。

system:显示采集间隔内发生的中断数

l  in:表示在某一时间间隔中观测到的每秒设备中断数

l  cs:表示每秒产生的上下文切换

cpu:

l  us:显示了用户进程消耗的CPU时间百分比。us的值比较高时,说明用户进程消耗的cpu时间比较多,但是如果长期大于50%,就需要考虑优化程序或算法。

l  sy:显示了系统内核进程消耗的CPU时间百分比。sy的值比较高时,说明内核消耗的cpu时间比较多。

根据经验,us+sy的值为80%,如果us+sy的值大于80%,就说明可能存在CPU资源不足的情况,这两个值越大,则由内核消耗的CPU时间就越多。

l  id:显示了CPU处在空闲状态的时间百分比

l  wa:显示了IO等待所占用的CPU时间百分比。wa值越高,说明IO等待越严重。根据经验,wa的参考值为20%,如果wa的值超过20%,就说明IO等待严重。引起IO等待的原因可能是磁盘大量随机读写造成的,也可能是磁盘或磁盘控制器的带宽瓶颈造成的(主要是块操作)。

综上所述,对CPU的评估中,需要重点注意的是procs项中的r值和cpu项中的us、sy和id值。

2、 sar监控CPU使用情况


【说明】:

l  %user:表示用户进程消耗的CPU时间百分比

l  %nice:表示运行正常进程所消耗的CPU时间百分比

l  %system:表示系统进行所消耗的CPU时间百分比

l  %iowait:表示io等待占用的CPU时间百分比

l  %steal:表示在内存相对紧张的环境下pagein强制对不同的页面进行的steal操作

l  %idle:表示CPU处在空闲状态的时间百分比。

对于多CPU系统,可以单独进行统计,如下图所示:


其中0表示第一个CPU进行统计,如对第二个CPU监控,则为1,依次类推。

3、 iostat监控CPU使用情况


iostat主要用于监控磁盘IO状态,也可以查看CPU的使用信息,局限性在于只能显示系统所有CPU的平均信息。

-c表示只显示系统cpu的统计信息

4、 uptime监控CPU使用情况


uptime主要用来统计当前的运行状况,输出的信息依次为系统现在的时间、系统从上次开机到现在运行了多长时间、系统目前有多少登录用户,系统在1分钟内、5分钟内、15分钟内的平均负载。如下图所示:

一般需要注意load average的值,这三个值不能大于CPU的个数,如果长期大于CPU个数,则说明CPU繁忙,负载很高,可能会影响系统性能。

【学习笔记】摘自《Linux服务器架设、性能调优、集群管理教程—实训与项目案例》

 

文章知识点与官方知识档案匹配,可进一步学习相关知识
CS入门技能树Linux入门初识Linux24755 人正在系统学习中

与[转帖]【学习笔记】Linux下CPU性能评估相似的内容:

[转帖]【学习笔记】Linux下CPU性能评估

Linux下CPU性能评估 1、 vmstat监控CPU使用情况 【说明】 procs: l r表示运行和等待CPU时间片的进程数,这个值如果长期大于系统CPU的个数,就说明CPU不足,需要增加CPU。 l b表示在等待资源的进程数,比如正在等待I/O或者内存交换等。 memory: l swpd:

[转帖]Linux文本处理三剑客之awk学习笔记05:getline用法详解

https://www.cnblogs.com/alongdidi/p/awkGetline.html getline用法详解 在默认情况下,awk支持从文件或者STDIN中读取数据。我们也可以使用getline来灵活读取数据,例如在main代码块执行过程中读取某个非待处理文件的数据,或者从某个读取

[转帖]Linux文本处理三剑客之awk学习笔记05:getline用法详解

https://www.cnblogs.com/alongdidi/archive/2021/01/19/awkGetline.html getline用法详解 在默认情况下,awk支持从文件或者STDIN中读取数据。我们也可以使用getline来灵活读取数据,例如在main代码块执行过程中读取某个

[转帖]《Linux性能优化实战》笔记(一)—— 平均负载

最近在看极客时间的《Linux性能优化实战》课程,记录下学习内容。 一、 平均负载(Load Average) 1. 概念 我们都知道uptime命令的最后三列分别是过去 1 分钟、5 分钟、15 分钟系统的平均负载,到底平均负载是什么? 简单来说,平均负载是指单位时间内,系统处于可运行状态和不可中

[转帖]Linux 学习笔记: shell中${} 的用法,删除&替换

Linux 学习笔记: shell中${} 的用法,删除&替换 字符串的删除 echo${i##*/} 删除 / 前的所有内容 ## 删除 tt=$i echo{tt:22} #取的22位以后的所有字符 file=/dir1/dir2/dir3/my.file.txt ${file#/}:删掉第一个

[转帖]Jmeter学习笔记(十七)——jmeter目录结构

原文链接:http://www.cnblogs.com/zichuan/p/6938772.html 一、bin目录examples: 目录中有CSV样例 jmeter.bat windows的启动文件 jmeter.log jmeter运行日志文件 jmeter.sh linux的启动文件 jme

[转帖]Kafka 核心技术与实战学习笔记(六)kafka线上集群部署方案

一.操作系统-Linux Kafka是JVM系的大数据框架kafka由Scala语言和Java语言编写而成,编译之后的源代码就是普通的".class"文件 使用Linux kafka客户端底层使用Java的selector,selector在Linux上的实现机制是epoll,由于在windows上

[转帖]Bash脚本编程学习笔记04:测试命令test、状态返回值、位置参数和特殊变量

https://www.cnblogs.com/alongdidi/p/test_exitStatus_positionalAndSpecialParameter.html 我自己接触Linux主要是大学学习的Turbolinux --> 根据《鸟哥的Linux私房菜:基础篇》(第三版) --> 马

[转帖]Bash脚本编程学习笔记04:测试命令test、状态返回值、位置参数和特殊变量

Bash脚本编程学习笔记04:测试命令test、状态返回值、位置参数和特殊变量 我自己接触Linux主要是大学学习的Turbolinux --> 根据《鸟哥的Linux私房菜:基础篇》(第三版) --> 马哥的就业班课程。给我的感觉是这些课程对于bash的讲解,理论上是不够的,但是限于时间、篇幅和精

[转帖]正则表达式边玩边学

最近在学习极客时间的《正则表达式入门课》,感觉很适合入门玩,所以简单作一些笔记方便查找参考。 正则,就是正则表达式,英文是 Regular Expression,简称 RE。顾名思义,正则其实就是一种描述文本内容组成规律的表示方式。在编程语言中,正则常常用来简化文本处理的逻辑。在 Linux 命令中