zoukankan      html  css  js  c++  java
  • [Ubuntu] <uptime>命令

    uptime 命令 就是查看系统启动时间的,前几个大家应该都很熟悉:当前时间、系统启动时间、正在登陆的用户数

    最后的三个数字,分别代表过去 1分钟  5分钟  15分钟  的平均负载(Load Average) .

    什么是平均负载?

    平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数,它不仅包括了正在使用CPU的进程,也包括了等待CPU和等待I/O的进程。它和CPU使用率没有直接关系。

    平均负载 可以简单理解为活跃进程数的平均值(实际上为活跃进程数的指数衰减值)

    平均负载多少时比较合理?

    对于这个问题,你首先应该知道你的电脑有多少个CPU,CPU的个数我们可以通过文件  /proc/cupinfo  来直接获取。具体命令如下

    ,从上面结果可以看到,我的cpu个数为 8 

    从最后这三个数据看出整个系统性能的趋势状态

    在这里把 1分钟 5分钟  15分钟  这三个时间点代表的数值分别用 A  B C 来代替

    •  如果 A B C 三个数值基本在相同,则说明在这段时间里,系统负载相对平稳

    • 如果 A 远小于 C 的值,则表示在这段时间内系统负载有减小的趋势

    • 如果 A 远大于 C 的值,则表示在这段时间内系统负载有增大的趋势

    在实际生产工作中,当平均负载高于CPU数量的70%(即1.70)的时候,我们就应该排查高负载的原因了,在这种高族在的情况下,可能导致进程响应变慢,从而影响系统的性能。

     CPU使用率,是单位时间内CPU繁忙情况的统计,跟平均负载不完全对应。

    • CPU密集型进程,也就是进程不停占用CPU,这样会导致平均负载升高,此时二者是一致的

    • I/O密集型进程,这样的进程不会一直占用CPU,但是会提高平均负载,但CPU的使用率不一定高

    • 大量等待CPU进程的调度也会导致平均负载升高,此时CPU的使用率也会比较高

    利用平均负载提高系统性能:无非就是找到异常的进程,然后将异常进程干掉,以此来提高系统性能。

    举个例子:

    首先在电脑里安装两个程序:

    • stress    是Linux系统压力测试工具,用它来作为异常进程来模拟负载升高的情景

    • sysstat   包含Linux系统成用的性能工具,用来监控和分析系统的性能

    1. 安装:

    sudo apt install stress
    sudo apt install sysstat
    

    2. 打开第一个终端,启动stress

    stress --cpu 1 --timeout 600
    

    3.打开第二个终端,用uptime查看平均负载,1分钟平均负载慢慢升高到1.53(可以在启动stress后1分钟再看,这样第1分钟和第15分钟差距很明显)

    uptime

    4.打开第三个终端,用mpstat查看CPU使用率变化情况

    mpstat -P ALL 5
    

    可以看到第4号cpu使用率达到了100%

    5.打开第四个终端,用pidstat来查询是哪个进程导致了cpu使用率为100%

    pidstat -u 5 1
    

    可以看到是stress进程导致了cpu使用率达到了100%,进程ID 为 5863

    6.用kill命令干掉进程

    kill 5863

  • 相关阅读:
    LOJ 3055 「HNOI2019」JOJO—— kmp自动机+主席树
    LOJ 2586 「APIO2018」选圆圈——KD树
    bzoj 3600 没有人的算术——二叉查找树动态标号
    bzoj 1257 余数之和 —— 数论分块
    bzoj 3998 弦论 —— 后缀自动机
    bzoj 2946 公共串 —— 后缀自动机
    bzoj 4032 [ HEOI 2015 ] 最短不公共子串 —— 后缀自动机+序列自动机
    bzoj 2555 SubString —— 后缀自动机+LCT
    洛谷 P3804 [模板] 后缀自动机
    洛谷 P4106 / bzoj 3614 [ HEOI 2014 ] 逻辑翻译 —— 思路+递归
  • 原文地址:https://www.cnblogs.com/cypblogs/p/10018427.html
Copyright © 2011-2022 走看看