Linux性能优化之cpu性能评估工具
内容介绍:
一、vmstat
二、iostat
三、uptime命令
四、top命令
一、vmstat
(1)主要功能:
统计操作系统的内存信息、进程状态和cpu活动的监视。
(2)特点:
统计内容较为全面;系统默认自带,无须另外下载软件包,使用较为方便。
(3)使用方法(线上服务器演示):
vmstat 3 5:表示3秒钟统计一次系统信息,统计5次后结束。
(4)输出字段含义:
①procs(进程)
r值:表示cpu正在处理或者在cpu队列中等待的状态值。该数值的评判标准与cpu核数有关,r是指cpu运行队列的组合,在这个队列的饱和状态下,每个核均在处理一个任务,因此,r选项的最大值应小于或等于cpu总核数。若r值长期大于cpu总核数,则说明此时cpu负载较重。
b值:代表正在等待资源的进程数。如等待I/O或内存交换等。该数值同样不可以经常大于cpu总核数,若b值不经常为0或者较大,说明cpu的负载较大。
②memory(内存)
swpd:表示切换到交换区的内存数量,单位kb,若该值不为0,但si与so值为0,则说明内存无影响。
free:剩余物理内存状态值,单位kb。
buff:一般对块设备进行读写会用到缓冲,其存放buff/cache的内存量,还包括对于文件属性的存放,如文件大小、文件权限及文件写入的状态值等。
cache:表示page-cache,作为文件系统的cache使用,访问频繁的文件都会被cache。该值一般较大,表示cache的文件较多,但并不代表内存不正常(该内容会在下节课具体阐述)。
③swap
si:表示由磁盘调入内存的文件数量,或者说是调入内存交换区的文件数量。
so:与si意义相反,表示由内存调入磁盘的文件数量,或者说是内存交换区进入物理内存的文件数量。
若si与so长期为0,则表明系统资源充足。反之,则说明系统物理内存不充足。
④io
bi:表示从块设备读入数据的总量,即读入磁盘的大小,单位kb。
bo:表示从写入块设备数据的总量,即写入磁盘的大小,单位kb。
⑤system(系统间隔时间内发生的中断数)
表明内核消耗cpu时间的多少
in:在某个时间间隔内,观测到的每秒设备产生的中断数。
cs:在某个时间间隔内,观测到的每秒产生的上下文切换数。
若in值与cs值较大,则内核消耗的cpu量较大。
⑥cpu
us:表示用户进程消耗cpu的百分比。若该值较大,则说明用户进程消耗的cpu的时间较多。用户进程是指线上运行的软件、业务等,或称用户消耗的cpu资源。
sy:与system表示含义相同,表示内核进程消耗cpu的百分比。若该值较大,则说明内核进程消耗的cpu的时间较多。
若us长期大于50%,且sy值较小,说明用户进程消耗的cpu较多,但并不说明存在异常,仅说明资源得到了充分利用。
若us加sy长期大于80%,则说明系统cpu资源不足。
id:表示cpu处于空闲状态时间的百分比。
wa:表示I/O等待值占用cpu时间的百分比。若该值较大,则说明I/O等待值较大。若wa大于20%,则I/O等待值较大,需要考虑是否是由于大量磁盘读写导致的;若wa长期大于50%,则表明磁盘存在问题,可增加更快的磁盘或对其进行优化。
st
二、iostat(I/O statistics 输入/输出统计)
(1)主要功能:
对系统磁盘I/O工作进行监视及对cpu状态进行统计与判断。
(2)特点:
需要另外安装sysstat工具包
(3)使用方法:
iostat直接输入:显示操作系统启动到输出前的状态值。
iostat -c 3 5:评估cpu的状态值,表示3秒输出一次,输出5次 。
iostat -d:判断磁盘的I/O状态值。
(3)输出字段分析:
avg-cpu:表示cpu平均值的统计。
%user:表示用户进程占用cpu的百分比。
%nice:表示运行正常时间消耗cpu的百分比。
%system:表示内核进程消耗cpu的百分比。
%iowait:表示I/O等待时间消耗cpu的百分比。
%steal:表示在内存紧张环境下,page-in(入页:内存进行切换操作)时,强制对不同页进行的steal操作,主要涉及对内存的判断。
%idel:表示空闲时间占用cpu的百分比。
三、uptime命令
(1)主要用途:
用于判断系统整体性能的指标命令,可了解一段时间内系统的负载状态。
(2)特点:
系统自带的命令
(3)使用方法:
uptime直接输出
(4)输出字段分析:
①显示当前时间
②up显示系统启动时间
③显示登录系统用户数目
④load average 显示平均负载
第1个值:代表系统1分钟之内整体的负载状态。
第2个值:代表系统5分钟之内整体的负载状态。
第3个值:代表系统15分钟之内整体的负载状态。
四、top命令
(1)主要功能:
显示包括cpu、磁盘、内存、网络等信息
(2)特点:
使用最为简单,且统计范围十分广泛
(3)使用方法:
top直接输入
(4)输出字段含义:
①与uptime显示结果相同。
②Tasks:显示目前系统总的任务数、正在运行的任务数、休眠的任务数及处于僵尸状态的任务数。
③Cpu(s):对cpu状态的统计
键盘输入“1”,则显示cpu的核数及每个核的运行状态。其输出值与vmstat、iostat输出值含义相同。
④Mem:对内存的统计,显示系统物理内存总量、使用物理内存量、空闲物理内存量和缓冲物理内存量。
⑤Swap:对Swap使用情况的统计