查看Linux服务器的负载情况

负载(load)是linux机器的一个重要指标,直观了反应了机器当前的状态 。如果机器负载过高,那么对机器的操作将难以进行 。Linux的负载高,主要是由于CPU使用、内存使用、IO消耗三部分构成 。任意一项使用过多,都将导致服务器负载的急剧攀升 。
查看服务器负载有多种命令,主要有; w ; top ; ,下面将一一展示 。
(1) w或者都可以直接展示负载
$
12:20:30 up 44 days, 21:46, 2 users, load : 8.99, 7.55, 5.40
$w
12:22:02 up 44 days, 21:48, 2 users, load : 3.96, 6.28, 5.16
load 分别对应于过去1分钟,5分钟,15分钟的负载平均值 。
【查看Linux服务器的负载情况】这两个命令只是单纯的反映出负载,linux提供了更为强大,也更为实用的top命令来查看服务器负载 。
(2) top命令
$ top

查看Linux服务器的负载情况

文章插图
top命令能够清晰的展现出系统的状态,而且它是实时的监控,按q退出 。
Tasks行展示了目前的进程总数及所处状态,要注意,表示僵尸进程,不为0则表示有进程出现问题 。
Cpu(s)行展示了当前CPU的状态,us表示用户进程占用CPU比例,sy表示内核进程占用CPU比例,id表示空闲CPU百分比,wa表示IO等待所占用的CPU时间的百分比 。wa占用超过30%则表示IO压力很大 。
Mem行展示了当前内存的状态,total是总的内存大小,userd是已使用的,free是剩余的,是目录缓存 。
Swap行同Mem行,表示缓存,用户已打开的文件 。如果Swap的used很高,则表示系统内存不足 。
在top命令下,按1,则可以展示出服务器有多少CPU,及每个CPU的使用情况
查看Linux服务器的负载情况

文章插图
一般而言,服务器的合理负载是CPU核数*2 。也就是说对于8核的CPU,负载在16以内表明机器运行很稳定流畅 。如果负载超过16了,就说明服务器的运行有一定的压力了 。
在top命令下,按shift + "c",则将进程按照CPU使用率从大到小排序,按shift+"p",则将进程按照内存使用率从大到小排序,很容易能够定位出哪些服务占用了较高的CPU和内存 。
(3)命令
仅仅有top命令是不够的,因为它仅能展示CPU和内存的使用情况,对于负载升高的另一重要原因——IO没有清晰明确的展示 。linux提供了命令,可以了解io的开销 。
输入 -x 1 10命令,表示开始监控输入输出状态,-x表示显示所有参数信息,1表示每隔1秒监控一次,10表示共监控10次 。
查看Linux服务器的负载情况

文章插图
其中rsec/s表示读入,wsec/s表示每秒写入,这两个参数某一个特别高的时候就表示磁盘IO有很大压力,util表示IO使用率,如果接近100%,说明IO满负荷运转 。
(4)总结:
1)使用top命令查看负载,在top下按“1”查看CPU核心数量,shift+"c"按cpu使用率大小排序,shif+"p"按内存使用率高低排序;
2)使用 -x 命令来监控io的输入输出是否过大
参考:《鸟哥的Linux私房菜》