每当我通过SSHlogin到我的服务器时,它都会闪烁一下服务器信息。 IE IP地址,交换使用情况,内存使用情况等。闪烁的其他事情之一是系统负载。 现在大多数情况下,系统负载数是<0.10,但是有些时候我已经看到它升至0.89(通常在启动时)。
这就提出了一个问题,系统负载能够达到多高? 比如说它有可能上升到2.00甚至100.00?
这就提出了一个问题,系统负载能够达到多高? 比如说它有可能上升到2.00甚至100.00?
绝对。 查看uptime手册页:
System load averages is the average number of processes that are either in a runnable or uninterruptable state. A process in a runnable state is either using the CPU or waiting to use the CPU. A process in unin‐ terruptable state is waiting for some I/O access, eg waiting for disk. The averages are taken over the three time intervals. Load averages are not normalized for the number of CPUs in a system, so a load aver‐ age of 1 means a single CPU system is loaded all the time while on a 4 CPU system it means it was idle 75% of the time.
所以如果你有很多进程在等待运行(或者很多进程被阻塞等待I / O),那么你的平均负载就会很高。 这篇文章更详细地谈论它,并且有其他资源的有用的链接。
在卸载的系统上,平均负载通常在0 <= load_average <= n的范围内,其中n是系统上的核心数。
我见过活着的系统碰到了成千上万。 Load Average(平均负载)基于等待进程获取内核注意力并获得CPU时间的相对度量。 如果机器被淹没或者崩溃,那可能需要很长时间。
什么级别是可以接受的取决于机器,内核数量,正在使用的内核作业调度程序的types以及您希望执行的作业。 我有一些机器在〜10的范围内相当开心,但是如果他们达到40-50的时候就会停下来。 其他人在2时变得明显迟缓,在10时不能使用。
由于很多事情一下子完成,机器正在清盘,所以负载在高速启动时并不罕见。 我会考虑一个非常正常的负载,在桌面Linux上重启后,然后在无所事事的时候降到0.1。
在Linux上,系统负载平均值由处于三种不同状态之一的进程组成。 一般来说,可以说负载平均值是等待CPU时间或消耗CPU时间的进程的数量。 载荷平均概览中的三个值是过去一分钟,最后五分钟和最后十五分钟的平均载荷。
计算到负载平均值的三种不同状态的进程是:(1)在CPU上运行的进程,(2)等待CPU时间的进程和(3)在不间断hibernate中的进程。 最后一类,虽然不产生CPU负载,但可以显着提高系统负载平均值。
例如,十几个进程在等待非常繁忙或不可用的磁盘读取数据时,会产生平均的12次平均负载作为不间断睡眠中的进程,但同时CPU可能会完全空闲。
所以,是的,平均负荷可以轻松达到两位数。 这有多糟糕,而是依赖于你的硬件。 如果你有16个内核,有16个进程等待CPU时间并不是那么糟糕。 在一台核心机器上,有3个进程等待CPU时间可能会非常糟糕。
杀了一个正在吃旧的450Mhz cpu的过程几秒钟后:

当您重复启动立即阻塞的进程时,负载将会与您设置的进程数量一样高。 假设你有足够的内存,系统不会交换,系统甚至可以保持响应,因为阻塞进程的负载并不是真的有害。
做一个简单的C进程在10000个线程中运行无限循环。 给它一个非常低的优先级(+20)。 您的负载将是10000,而您的系统将仍然可用。 它将只使用很less的RAM(最多几兆字节)。
虽然这是一个非常不寻常的configuration,但在真实的系统中,您不会find它。
系统负载只意味着等待一个cpu时隙的进程的平均数量,不能less于,不多于。 这里是关于解释系统负载的正确方法的另一个答案。
在日常经验中,超过30+的负载主要意味着一些问题。
我看到一个服务器运行在> 200的负载。
我会压力testing看看。