Linux下CPU性能评估
1、 vmstat监控CPU使用情况
【说明】
procs:
l r表示运行和等待CPU时间片的进程数,这个值如果长期大于系统CPU的个数,就说明CPU不足,需要增加CPU。
l b表示在等待资源的进程数,比如正在等待I/O或者内存交换等。
memory:
l swpd:表示切换到内存交换区的内存数量(以kB为单位).如果swpd的值为0或者比较大,而且si、so的值长期为0,那么这种情况下,一般不用担心,不会影响系统性能。
l free:表示当前空闲的物理内存大小(以kB为单位)
l buff:表示buffers cache的内存数量,一般对块设备的读写才需要缓冲。
l cache:表示page cached的内存数量,一般作为文件系统cached,频繁访问的文件都会被cached。如果cache值较大,就说明cached的文件数较多。如果此时IO中bi比较小,就说明文件系统效率比较高。
swap:
l si:表示由磁盘调入内存,也就是内存进入内存交换区的数量
l so:表示由内存调入磁盘,也就是内存交换区进入内存的数量
一般情况下,si、so的值都为0,如果si、so的值长期不为0,则表示系统内存不足,需要增加系统内存。
io:显示磁盘读写状况
l bi:表示从块设备读入数据的总量(即读磁盘)(每秒KB)
l bo:表示写入块设备的数据总量(即写磁盘)(每秒KB)
这里设置的bi+bo的参考值为1000,如果超过1000,而且wa值较大,则表示系统磁盘IO有问题,应该考虑提高磁盘的读写性能。
system:显示采集间隔内发生的中断数
l in:表示在某一时间间隔中观测到的每秒设备中断数
l cs:表示每秒产生的上下文切换
cpu:
l us:显示了用户进程消耗的CPU时间百分比。us的值比较高时,说明用户进程消耗的cpu时间比较多,但是如果长期大于50%,就需要考虑优化程序或算法。
l sy:显示了系统内核进程消耗的CPU时间百分比。sy的值比较高时,说明内核消耗的cpu时间比较多。
根据经验,us+sy的值为80%,如果us+sy的值大于80%,就说明可能存在CPU资源不足的情况,这两个值越大,则由内核消耗的CPU时间就越多。
l id:显示了CPU处在空闲状态的时间百分比
l wa:显示了IO等待所占用的CPU时间百分比。wa值越高,说明IO等待越严重。根据经验,wa的参考值为20%,如果wa的值超过20%,就说明IO等待严重。引起IO等待的原因可能是磁盘大量随机读写造成的,也可能是磁盘或磁盘控制器的带宽瓶颈造成的(主要是块操作)。
综上所述,对CPU的评估中,需要重点注意的是procs项中的r值和cpu项中的us、sy和id值。
2、 sar监控CPU使用情况
【说明】:
l %user:表示用户进程消耗的CPU时间百分比
l %nice:表示运行正常进程所消耗的CPU时间百分比
l %system:表示系统进行所消耗的CPU时间百分比
l %iowait:表示io等待占用的CPU时间百分比
l %steal:表示在内存相对紧张的环境下pagein强制对不同的页面进行的steal操作
l %idle:表示CPU处在空闲状态的时间百分比。
对于多CPU系统,可以单独进行统计,如下图所示:
其中0表示第一个CPU进行统计,如对第二个CPU监控,则为1,依次类推。
3、 iostat监控CPU使用情况
iostat主要用于监控磁盘IO状态,也可以查看CPU的使用信息,局限性在于只能显示系统所有CPU的平均信息。
-c表示只显示系统cpu的统计信息
4、 uptime监控CPU使用情况
uptime主要用来统计当前的运行状况,输出的信息依次为系统现在的时间、系统从上次开机到现在运行了多长时间、系统目前有多少登录用户,系统在1分钟内、5分钟内、15分钟内的平均负载。如下图所示:
一般需要注意load average的值,这三个值不能大于CPU的个数,如果长期大于CPU个数,则说明CPU繁忙,负载很高,可能会影响系统性能。
【学习笔记】摘自《Linux服务器架设、性能调优、集群管理教程—实训与项目案例》