linux uptime、top 命令的 load average

# uptime 
 09:35:21 up 22 min,  1 user,  load average: 5.24, 5.17, 3.83


top - 09:36:15 up 22 min,  1 user,  load average: 5.18, 5.17, 3.91

最后三个数字是 1、5、15分钟内的平均负载。

判断负载在15分钟内是在上升、下降,还是平稳。

平均负载大于CPU数量,表示CPU不足以服务线程,有些线程在等待。

举个例子:一个有64颗CPU的系统的平均负载为128,这意味着平均每个CPU上有一个线程在运行,还有一个线程在等待。而同样的系统,如果平均负载为10,则代表还有很大的余量,在所有CPU跑满前,还可以运行54个CPU消耗型线程。

Linux 下的 平均负载,目前linux 把不可中断状态执行磁盘I/O的任务也计入了平均负载。

这就意味着平均负载再也不能单用来表示CPU余量或者饱和度,因为不能单从这个值推断出CPU或者磁盘负载。由于负载可能会在CPU和磁盘之间不断变化,比较这三个平均负载数值也变的困难了。(CPU消耗型进程 / IO消耗型进程 不一样)

IO 消耗型进程 :(狂睡,等I/O,一般CPU利用率低),等待I/O请求,提交I/O请求。比如系统读写文件(磁盘I/O)Web服务器,文件服务器,鼠标,键盘都属于。I/O消耗型任务对延迟比较敏感,应该被优先调度。当负载增加时,会受到存储IO或者网络资源的限制。

CPU消耗型进程:(狂算,CPU利用率高),应用程序执行繁重的计算,比如科学和数据分析,通常运行时间较长(秒,分钟,小时),优先级比IO进程低。这些会受到CPU资源的限制。

比如,你正在疯狂编译安卓,而等鼠标行为的用户界面老不工作(正在狂睡),但是鼠标一点,我们应该优先打断正在编译的进程,而去响应鼠标这个I/O,这样电脑的用户体验才符合人性。

所以在Linux 上,最后通过一些其它指标来了解CPU负载 比如 vmstat mpstat

下面值都是所有CPU的系统平均数,r除外,是总数。


r 所有等待的加上正在运行的线程数,当这个值超过了CPU数目,就会出现CPU瓶颈了。

b 表示阻塞的进程,这个不多说,进程阻塞,大家懂的。

swpd 虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。

free   空闲的物理内存的大小

cache cache直接用来记忆我们打开的文件,给文件做缓冲,我本机大概占用300多M(这里是Linux/Unix的聪明之处,把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高 程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。)

si  每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。我的机器内存充裕,一切正常。

so  每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。

bi  块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备

bo 块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。

in 每秒CPU的中断次数,包括时间中断

cs 每秒上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源,也要尽量避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。

us 用户CPU时间,我曾经在一个做加密解密很频繁的服务器上,可以看到us接近100,r运行队列达到80(机器在做压力测试,性能表现不佳)。

sy 系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。

id  空闲 CPU时间,一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。

wt 等待IO CPU时间。

st 偷取。CPU在虚拟化的环境下,在其它租户上的开销。


 

### 回答1: top命令是一个在Linux系统中常用的性能分析工具,可以观察系统的CPU、内存、进程等使用情况。top命令可以实时更新系统状态,通过按键可以进行排序、筛选和操作等多种操作,可帮助用户分析系统性能问题。 ### 回答2: top命令是一种用于系统监控的命令,可以用于实时显示出系统中各个进程的状态以及系统的一些基本信息,比如CPU的使用率、内存的使用情况等。下面我们来详细解析一下这个命令的使用方式和输出结果。 1. top命令的基本使用 在Linux系统中,使用top命令非常简单,只需要在终端中输入top即可。默认情况下,top命令会以交互方式运行,并会实时显示系统的运行情况。用户可以通过按键来切换不同的显示模式或者排序方式。top命令常用的按键如下表所示: 按键 | 功能 --- | --- h | 显示帮助信息 k | 杀死某个进程 q | 退出top命令 r | 修改某个进程的优先级 s | 修改top命令的刷新时间 1 | 显示CPU的详细信息 M | 根据内存使用情况排序 P | 根据CPU占用率排序 2. top命令的输出结果解析 top命令的输出结果包括了很多列,下面我们来逐一解释一下这些列的含义。 第1列:进程ID(PID) 这一列显示了系统中每个进程的唯一标识符。用户可以根据PID来杀死某个进程。 第2列:进程的所有者(USER) 这一列显示了哪个用户启动了这个进程。如果这个进程是由root用户启动的,那么这一列会显示为root。 第3列:进程的优先级(PR) 这一列显示了进程的优先级。优先级的数值越小表示优先级越高,因为Linux系统在为进程分配CPU时间片的时候会优先考虑优先级高的进程。 第4列:进程所占用的CPU时间的百分比(%CPU) 这一列显示了进程所占用的CPU时间的百分比。如果一个进程的%CPU大于100%,那么表示这个进程正在使用多个CPU核心。 第5列:进程所占用的内存百分比(%MEM) 这一列显示了进程所占用的内存的百分比。如果一个进程的%MEM非常高,那么表示这个进程可能有内存泄漏的问题。 第6列:进程所占用的虚拟内存的大小(VSZ) 这一列显示了进程所占用的虚拟内存的大小。虚拟内存是指进程可以使用的所有内存,包括实际物理内存和交换区等。 第7列:进程所占用的物理内存的大小(RSS) 这一列显示了进程所占用的物理内存的大小。物理内存是指进程实际使用的内存,不包括交换区等。 第8列:状态(STAT) 这一列显示了进程的状态。常见的状态包括: 状态 | 含义 --- | --- R | 运行中 S | 等待中 T | 暂停或停止 Z | 僵尸进程 第9列:启动时间(START) 这一列显示了进程启动的时间。 第10列:命令行(COMMAND) 这一列显示了进程启动时的命令行参数,用来描述进程在运行时执行的具体命令和参数。 综上所述,top命令是一种非常强大的系统监控工具,可以方便地实时查看系统中各个进程的状态以及系统的一些基本信息,对于系统管理员来说非常有用。 ### 回答3: Linux中的top命令是一个使用频率很高的性能分析工具,它可以实时动态地查看系统资源的使用情况,包括CPU占用率、内存占用率、进程情况、各项系统负载等等。本文将为大家详解top命令的相关用法和参数。 一、top命令的语法结构 top命令的基本语法格式如下: $ top [参数] top命令带的参数很多,可以根据不同的需求使用不同的参数。 二、 top命令的参数详解 以下是常用的top命令参数说明: 1. -d:表示两次刷新之间的时间间隔,默认为3秒。 2. -p:表示指定要监视的进程ID列表或要显示的进程名。 3. -b:表示以批处理模式运行,不需要用户交互,直接将结果输出到标准输出流中。 4. -n:表示要刷新的次数。默认情况下,top命令会无限期地刷新,直到用户手动停止它。 5. -u:表示指定要监视的用户ID列表或用户名。 三、 top命令的输出内容说明 top命令的输出结果分为两部分,一部分是进程列表,另一部分是系统的总体信息。下面我们分别进行介绍。 1. 进程列表 进程列表是top命令最重要的部分,它展示了系统中正在运行的所有进程的相关信息。由于进程列表内容很多,我们只选取几个常用的指标进行说明。 (1) PID:即进程ID,表示该进程在系统中的唯一标识。 (2) PR:表示进程的优先级。 (3) SHR:表示进程使用的共享内存大小。 (4) VIRT:表示进程使用的虚拟内存大小。 (5) RES:表示进程使用的实际物理内存大小。 (6) %CPU:表示进程使用CPU的利用率。 (7) %MEM:表示进程使用内存的利用率。 (8) COMMAND:表示进程的命令名称。 2. 系统总体信息 系统总体信息是指显示服务质量、CPU、内存、交换空间和IO等系统性能数据的一部分。下面为大家介绍几个常用的指标。 (1) uptime:表示系统启动的时间和当前系统时间之间的差距。 (2) load average:表示系统在过去1分钟,5分钟和15分钟内所有进程的平均负载。 (3) Tasks:表示当前系统有多少个进程正在运行。 (4) %CPU:表示整个系统的CPU使用情况。 (5) %MEM:表示整个系统的内存使用情况。 (6) Swap:表示交换空间使用量的情况。 (7) IO:表示系统的总体输入输出情况。 四、 top命令的常用操作 在top命令中,用户可以使用以下几个常用操作: 1. P:按照进程的CPU占用率进行排序。 2. M:按照进程的内存使用率进行排序。 3. T:按照进程的执行时间进行排序。 4. k:杀死一个进程。输入k后,命令会提示要求用户输入需要杀死的进程的PID号。 5. q:退出top命令。 五、 top命令的注意事项 在使用top命令时需要注意以下几个问题: 1. 在top命令中如果一个进程的CPU占用率变得非常高(比如突然占用了90%以上的CPU资源),那么就很有可能说明这个进程正在执行某些不正常的操作。 2. 在top命令中,用户可以使用数字键 1 来查看每个CPU的CPU占用率和负载。这对于监视多核CPU系统来说非常有用。 3. 在批处理模式下,top命令可以输出到文件中,以便后续的分析。 总之,top命令Linux系统管理员和开发人员常用的一个性能分析工具,它通过实时监控和分析系统进程的CPU、内存、IO等方面的情况,为用户提供了一个实时的、全面的系统信息展示平台,让用户能够快速地定位到系统存在的问题,并采取适当的措施予以解决,对于维护系统运行状态和优化系统性能非常有帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值