cpu负载的探讨

摘要:确定cpu的负载的定义,帮助管理员设置cpu负载阀值,讨论cpu负载和利用率之间的关系,推测可能的导致cpu负载过高的原因,进而保证服务器的正常运行。

1.cpu负载的定义
   首先,看看cpu负载的定义。在一般情况下可以将单核心cpu的负载看成是一条单行的桥,数字1代表cpu刚好能够处理过来,即桥上能够顺利通过所有的车辆,
桥外没有等待的车辆,桥是畅通的。当超过1时表示有等待上桥的车辆,小于1时表示车辆能够快速的通过。单核心cpu就表示该cpu能够处理的事务数是1,在多核
cpu中cpu能够并行处理的事务的数量应该是cpu个数*cpu核数,而且负载数最好不要超过这个数值。例如一个4核cpu,则cpu_load最大值为4,不能长期超过4,否则会有任务没有得到及时的处理,而使系统的负载累积增高,导致系统运行缓慢。
   大多数的Unix系统中的负载只是记录那些处在运行状态和可运行状态的进程,但是Linux有所不同,它会包含那些不可中断的处于睡眠状态的进程。这时当这些进程由于I/O的阻塞而不能够运行,就可能显著的增加cpu的负载。所以在Unix和Linux下的cpu的负载的计算方法是不一样的,在设定监测值的时候也需要特别考率。
   对负载有了一个简单的定义之后,就可以利用命令w,top,uptime,vmstat等得到cpu的负载,通常情况下都可以得到1分钟,5分钟和15分钟的平均负载。可以在查看cpu核数的情况下来判断是否过载。

2.cpu负载监测值的设定
   在知道cpu的负载和对计算机的cpu的核数有一个初步了解后,就能够在监测软件中设置cpu的负载值,起到监控cpu负载的目的,防止负载过高。通常情况下一般采取0.7的法则,即当为4核cpu的时候,cpu的整体负载不要超过4*0.7=2.8。由于在使用命令时可以提供三个cpu的负载平均值,那么以哪个为准呢?其实在实际的监测过程中,只要cpu的负载在5分钟或是15分中内较低就可以了,因为有时在1分中确实会上升的很快。

3.cpu利用率的观测以及负载过高的可能原因
   cpu的负载大概有个初步的了解,它跟cpu的利用率又有什么样的关系呢?cpu的利用率通常会把每个核上的占用率加起来,所以有时可能超过100%。cpu的负载和利用率之间没有必然的联系,有时会出现负载过高,但利用率不高的情况。例如,有大量的并发任务,但是每个任务的cpu占有率却很低,这时就会出现cpu负载过高利用率低下的问题。同样也会出现cpu的利用率很高,但cpu负载很低的现象。

4.系统负载突然增高,但是内存的使用量没有变化,这个时候应该考虑更加深入的原因,通常在考虑cpu负载的过程中要看内存、I/O、网络方面的问题,这样看看变化的值是哪些就能确定问题的可能范围。

文章出处:飞诺网(www.firnow.com):http://sys.firnow.com/linux/x8002010n08m/09s90166243.html

你可能感兴趣的:(linux,unix,网络,服务器,任务,2010)