精华内容
下载资源
问答
  • Linux CPU负载率的计算方式

    千次阅读 2018-11-29 13:42:28
    Load average的概念源自UNIX系统,虽然各家的公式不尽相同,但都是用于衡量正在使用CPU的进行数量和正在等待CPU的进程数量,一句话就是runable processes的数量。所以Load average可以作为CPU瓶颈的参考指标,如果...

    Load average的概念源自UNIX系统,虽然各家的公式不尽相同,但都是用于衡量正在使用CPU的进行数量和正在等待CPU的进程数量,一句话就是runable processes的数量。所以Load average可以作为CPU瓶颈的参考指标,如果大于CPU的数量,说明CPU可能不够用了。

    但是,在Linux上有点差异!

    Linux上的load average除了包括正在使用CPU的进程数量和正在等待CPU的进程数量之外,还包括uninterruptible sleep的进程数量。通常等待IO设备、等待网络的时候,进程会处于uninterruptible sleep状态。Linux设计者的逻辑是,uninterruptible sleep应该都是很短暂的,很快就会恢复运行,所以被等同于runnable。然而uninterruptible sleep即使再短暂也是sleep,何况现实世界中uninterruptible sleep未必很短暂,大量的、或长时间的uninterruptible sleep通常意味着IO设备遇到了瓶颈。众所周知,sleep状态的进程是不需要CPU的,即使所有的CPU都空闲,正在sleep的进程也是运行不了的,所以sleep进程的数量绝对不适合用作衡量CPU负载的指标,Linux把uninterruptible sleep进程算进load average的做法直接颠覆了load average的本来意义。所以在Linux系统上,load average这个指标基本失去了作用,因为你不知道它代表什么意思,当看到load average很高的时候,你不知道是runnable进程太多还是uninterruptible sleep进程太多,也就无法判断是CPU不够用还是IO设备有瓶颈。

    从另一个方面来说,也就可以解释为什么磁盘慢时(大量磁盘使用时),CPU负载会飙高了。基本上我碰到CPU负载高的情况就两种情况:CPU本身处理太多任务,再加上软中断和上下文切换太频繁导致负载高;再就是磁盘太慢导致了不可中断睡眠太多导致CPU负载高。

    展开全文
  • CPU负载和 CPU使用 这两个从一定程度上都可以反映一台机器的繁忙程度. cpu使用反映的是当前cpu的繁忙程度,忽高忽低的原因在于占用cpu处理时间的进程可能处于io等待状态但却还未释放进入wait。 平均负载(load ...
  • cpu利用cpu负载是什么?

    千次阅读 2018-09-22 18:53:23
    我们经常会听到要好好使用cpu的资源,提高cpu利用,要学习应对高负载的情况,那这个高负载其实大多数情况指的就是cpu负载。我们还会学习到一个命令是top,这个命令可以得到他们的数值和其他系统指标。那么什么是...

    我们经常会听到要好好使用cpu的资源,提高cpu利用率,要学习应对高负载的情况,那这个高负载其实大多数情况指的就是cpu负载。我们还会学习到一个命令是top,这个命令可以得到他们的数值和其他系统指标。那么什么是cpu利用率,其实就是单位时间里cpu被使用的时间,那么为什么cpu会没有被使用到呢,我们经常可以看到cpu负载都是在3以上,也就是说如果cpu核心有四个的话,那么同一时刻可能就有三个核心在工作,虽然核心的工作并不一定是平均分配的。cpu的工作时间并不等于使用时间,因为这个工作可能需要请求硬盘资源和系统资源,时间还有大部分花在了这些事情上了。所以有的人会说当应用是io密集型的时候,要使用更多的线程,因为更多的线程意味着更多的任务,也意味着每个cpu执行一个任务的时间缩短了,所以花在io阻塞,socket阻塞的时间就少了,因为他们是异步执行,也就可以提高cpu利用率了。

    那么cpu负载是什么呢,其实就是所有cpu的运行的和在队列里等待的任务的数量,记住是所有cpu,所以4的负载率平均到每个cpu核心的任务数是4/逻辑cpu数,这个逻辑cpu数是因为有的cpu核心可以同时执行两个线程,所以哪怕有两个核心,我们也要当成有4个核心。负载数一般是每个核心承担0.7个任务最好,这个不是什么标准,我也不知道对不对,因为如果大于1,表示我们任务的延迟就比较大了,如果等于1,那么cpu就基本没闲着,对机器的损耗挺大的。

    其实理解概念没什么用,我们给指导这里面的原理,比如线程是怎么被执行的,它是先告诉cpu我处于可执行状态,然后cpu把他放到等待队列里或执行,cpu会为它分配时间片,时间片就是给予的cpu执行时间,这里面通过一个算法,叫做线程调度算法,有兴趣的可以搜一下,有时间片,fifo,抢占式,优先级几种。当线程被执行后,它就会执行到时间片时间用完,如果这个线程都是io操作,那么cpu就相当于什么都没干了。

    明天写一下对cpu缓存的理解。

    展开全文
  • CPU 负载CPU 使用 这两个从一定程度上都可以反映一台机器的繁忙程度。 CPU 使用反映的是当前 CPU 的繁忙程度,忽高忽低的原因在于占用 CPU 处理时间的进程可能处于 IO 等待状态但却还未释放进入wait。 ...
    CPU 负载和 CPU 使用率

    这两个从一定程度上都可以反映一台机器的繁忙程度。

    CPU 使用率反映的是当前 CPU 的繁忙程度,忽高忽低的原因在于占用 CPU 处理时间的进程可能处于 IO 等待状态但却还未释放进入wait。

    平均负载(load average)是指某段时间内占用 CPU 时间的进程和等待 CPU 时间的进程数,这里等待 CPU 时间的进程是指等待被唤醒的进程,不包括处于wait状态进程。

    以上分析可以看出,一台机器很有可能处于低 CPU 使用率高负载的情况,因此看机器的繁忙程度应该结合两者,从实际的使用情况观察,自己的一台双核志强 2.8GHZ,2G 内存的机器在平均负载到 50 左右, CPU 使用率才接近 100%(应用有不少 IO 操作),这种情况下应用还算流畅,实际访问延迟不是很高。因此在 CPU 还空闲的情况下,如何提高 IO 响应是减少负载的关键,很多人认为负载到几十了机器就非常繁忙了,我倒觉得如果这个时候 CPU 使用率比较低,则负载高可能不能很好说明问题,一旦 CPU 处理的进程处理完后,那些等待的进程也能立刻得到响应,这种情况下应该优化 IO 读写速度。真到 CPU 使用率一直 90% 以上,即使平均负载只有个位数(比如某一个进程一直在运算),那机器其实也已经繁忙了~

    其实,在前面的文章中,也有写到 CPU 使用率低负载高,原因分析 CPU 使用率低,但是 load 很高,load 很高的可能是IO

    CPU 负载的一个类比

    判断系统负荷是否过重,必须理解 load average 的真正含义。下面,我根据”Understanding Linux CPU Load”这篇文章,尝试用最通俗的语言,解释这个问题。

    首先,假设最简单的情况,你的电脑只有一个 CPU ,所有的运算都必须由这个 CPU 来完成。

    那么,我们不妨把这个 CPU 想象成一座大桥,桥上只有一根车道,所有车辆都必须从这根车道上通过。(很显然,这座桥只能单向通行。)

    • 系统负荷为0,意味着大桥上一辆车也没有。
    • 系统负荷为0.5,意味着大桥一半的路段有车。
    • 系统负荷为1.0,意味着大桥的所有路段都有车,也就是说大桥已经”满”了。但是必须注意的是,直到此时大桥还是能顺畅通行的。

    系统负荷为1.7,意味着车辆太多了,大桥已经被占满了(100%),后面等着上桥的车辆为桥面车辆的70%。以此类推,系统负荷2.0,意味着等待上桥的车辆与桥面的车辆一样多;系统负荷3.0,意味着等待上桥的车辆是桥面车辆的2倍。总之,当系统负荷大于1,后面的车辆就必须等待了;系统负荷越大,过桥就必须等得越久。

    CPU 的系统负荷,基本上等同于上面的类比。大桥的通行能力,就是 CPU 的最大工作量;桥梁上的车辆,就是一个个等待 CPU 处理的进程(process)。

    如果 CPU 每分钟最多处理100个进程,那么系统负荷0.2,意味着 CPU 在这1分钟里只处理20个进程;系统负荷1.0,意味着 CPU 在这1分钟里正好处理100个进程;系统负荷1.7,意味着除了 CPU 正在处理的100个进程以外,还有70个进程正排队等着 CPU 处理。

    为了电脑顺畅运行,系统负荷最好不要超过1.0,这样就没有进程需要等待了,所有进程都能第一时间得到处理。很显然,1.0是一个关键值,超过这个值,系统就不在最佳状态了,你要动手干预了。

    CPU 负载-多处理器

    上面,我们假设你的电脑只有1个 CPU 。如果你的电脑装了2个 CPU ,会发生什么情况呢?

    2个 CPU ,意味着电脑的处理能力翻了一倍,能够同时处理的进程数量也翻了一倍。还是用大桥来类比,两个 CPU 就意味着大桥有两根车道了,通车能力翻倍了。

    所以,2个 CPU 表明系统负荷可以达到 2.0,此时每个 CPU 都达到 100% 的工作量。推广开来,n个 CPU 的电脑,可接受的系统负荷最大为 n.0。

    CPU 负载-多核处理器

    芯片厂商往往在一个 CPU 内部,包含多个 CPU 核心,这被称为多核 CPU 。

    在系统负荷方面,多核 CPU 与多 CPU 效果类似,所以考虑系统负荷的时候,必须考虑这台电脑有几个 CPU 、每个 CPU 有几个核心。然后,把系统负荷除以总的核心数,只要每个核心的负荷不超过1.0,就表明电脑正常运行。

    怎么知道电脑有多少个 CPU 核心呢?

    cat /proc/cpuinfo命令,可以查看 CPU 信息。grep -c 'model name' /proc/cpuinfo命令,直接返回 CPU 的总核心数。

    系统负荷的经验法则

    1.0是系统负荷的理想值吗?

    不一定,系统管理员往往会留一点余地,当这个值达到0.7,就应当引起注意了。经验法则是这样的:

    • 当系统负荷持续大于0.7,你必须开始调查了,问题出在哪里,防止情况恶化。
    • 当系统负荷持续大于1.0,你必须动手寻找解决办法,把这个值降下来。
    • 当系统负荷达到5.0,就表明你的系统有很严重的问题,长时间没有响应,或者接近死机了。你不应该让系统达到这个值。

    对于我的机器,有24个core,那么,load多少合适呢?

    [root@lpf]# grep -c 'model name' /proc/cpuinfo
    24

    答案是:

    [root@lpf]# echo "0.7*24" | bc
    16.8
    最佳观察时长

    最后一个问题,”load average” 一共返回三个平均值—-1分钟系统负荷、5分钟系统负荷,15分钟系统负荷,—-应该参考哪个值?

    • 如果只有1分钟的系统负荷大于1.0,其他两个时间段都小于1.0,这表明只是暂时现象,问题不大。
    • 如果15分钟内,平均系统负荷大于1.0(调整 CPU 核心数之后),表明问题持续存在,不是暂时现象。
    • 所以,你应该主要观察”15分钟系统负荷”,将它作为电脑正常运行的指标。







    来源:https://www.cnblogs.com/muahao/p/6492665.html

    展开全文
  • CPU使用CPU负载 的区别

    千次阅读 2018-06-16 14:47:53
    cpu使用就是cpu使用的多少。cpu负载就是cpu最大能承载的能力。CPU利用显示的是程序在运行期间实时占用的CPU百分比,而CPU负载显示的是一段时间内正在使用和等待使用CPU的平均任务数。 ...
    cpu使用率就是cpu使用的多少。

    cpu负载就是cpu最大能承载的能力。

    CPU利用率显示的是程序在运行期间实时占用的CPU百分比,而CPU负载显示的是一段时间内正在使用和等待使用CPU的平均任务数。

    展开全文
  • 最近服务器的CPU负载经常报警,然而CPU的利用并不是特别高。这里对这两个概念做一下说明。 CPU负载
  • 理解CPU负载和CPU使用

    万次阅读 多人点赞 2018-02-26 23:38:25
    [root@system]# toptop - 23:39:41 up 8 days, 6:36, 2 users, load average: 0.00, 0.01, 0.05Tasks: 71 total, 1 running, 70 sleeping, 0 stopped, 0 zombie%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0...
  • Linux中CPU负载和CPU使用表示的含意   机器为CentOS系统,服务器CPU负载信息如下: WARNING - load average: 9.73, 10.67, 10.49   一、警报信息的三个参数到底是什么意思? 9.73、10.67、10.49分别代表前...
  • 做压力测试的时候,我们经常会关注两个指标,CPU利用CPU负载 Linux中,进程分为三种状态: 阻塞的进程blocked process 可运行的进程runnable process 正在运行的进程running process 当进程处于不可中断时,...
  • 理解Linux CPU负载和 CPU使用

    千次阅读 2017-03-02 21:22:00
    CPU负载和 CPU使用 这两个从一定程度上都可以反映一台机器的繁忙程度. cpu使用反映的是当前cpu的繁忙程度,忽高忽低的原因在于占用cpu处理时间的进程可能处于io等待状态但却还未释放进入wait。 平均负载(load ...
  • CPU负载和CPU利用浅析

    万次阅读 2018-07-04 15:43:34
    CPU利用是指CPU工作时间占总时间的比重,公式如下: Utilization= work_time/total_time, 其中,total_time=work_time+idle_ime. 可见,总时间由一段连续时间内的CPU工作时间长度和CPU空闲时间长度组成。举个...
  • Java获取cpu数量,cpu使用 如下是spring-boot监控服务spring-boot-starter-actuator源码中获取cpu个数,cpu使用的方式. import com.sun.management.OperatingSystemMXBean; import java.lang.management....
  • 可能很多人仍然无法搞明白Linux下CPU利用CPU负载的含义以及区别,本文将简单介绍这两者的含义和区别
  • 浅谈Linux下CPU利用CPU负载

    万次阅读 2017-05-08 20:05:58
    在Linux/Unix下,CPU利用CPU utilization)分为用户态,系统态和空闲态,分别表示CPU处于用户态执行的时间,系统内核执行的时间,和空闲系统进程执行的时间。平时所说的CPU利用是指:CPU执行非系统空闲进程的...
  • 概述 转载:添加链接描述 1.1 CPU负载和CPU利用的区别是什么? 首先,我们可以通过uptime,w或者top命令看到CPU的平均负载。 top命令参考:Linux : top命令 Load Average :负载的3个数字,比如上图的4.86,5.28,...
  • CPU负载

    千次阅读 2017-02-08 16:04:26
    确定cpu的负载的定义,帮助管理员设置cpu负载阀值,推测可能的导致cpu负载过高的原因,进而保证服务器的正常运行。
  • Linux cpu负载和cpu利用的区别

    千次阅读 2019-09-02 19:23:58
    在Linux系统中,我们一般使用uptime命令查看(w命令和top命令也行)。 一、“load average” 含义: ...当CPU完全空闲的时候,平均负荷为0;当CPU工作量饱和的时候,平均负荷为1。那么很显然,"loa...
  • linux里的CPU负载
  • (1)、问题 线上Tomcat服务器CPU负载非常高,但是CPU使用正常,如图:(2)、问题排查1、首先查看是哪些进程的CPU占用最高(如下可以看到详细的路径)ps -aux --sort -pcpu | more# 定位有问题的线程可以用...
  • Linux CPU负载利用统计

    千次阅读 2014-01-24 15:55:36
    通常,有如下方式可以得到 cpu 利用情况: top 命令 e.g. top -m 20 -d 1 -t User 0%, System 6%, IOW 0%, IRQ 0% User 1 + Nice 0 + Sys 34 + Idle 494 + IOW 0 + IRQ 0 + SIRQ 1 = 530 PID TID PR CPU% S...
  • 第一节 CPU利用CPU负载 在Linux/Unix下,CPU利用(CPU utilization)分为用户态,系统态和空闲态,分别表示CPU处于用户态执行的时间,系统内核执行的时间,和空闲系统进程执行的时间。平时所说的CPU利用是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 118,819
精华内容 47,527
关键字:

cpu负载率