CPU是影响性能的主要因素之一。vmstat命令:显示关于系统各种资源之间相关性能的简要信息。 procs那栏中的r表示运行和等待CPU时间片的进程数,如果这个值长期大于系统CPU的个数那就说明CPU不足,需要增加CPU。memory那栏中:swapd表示切换到内存交换区的内存
CPU是影响性能的主要因素之一。 vmstat命令:显示关于系统各种资源之间相关性能的简要信息。
procs那栏中的r表示运行和等待CPU时间片的进程数,如果这个值长期大于系统CPU的个数那就说明CPU不足,需要增加CPU。 memory那栏中: swapd表示切换到内存交换区的内存数量。 free表示当前空闲的物理内存数量。 buff表示块设备(/dev/sda)读写需要的缓冲。 cache表示文件系统的缓存。如果值较大,说明缓存中的文件数较多。 swap中 si表示由磁盘调入内存。 so表示由内存调入磁盘。 在一般情况下,si和so的值都为0,如果这2个值长期不为0 的话,说明系统内存不足,需要添加内存。 io:显示磁盘读写状况 bi表示读磁盘数据的总量。 bo表示写磁盘数据的总量。 system:显示间隔内发生的中断数 in表示在磨一时间间隔中每秒设备中断数。 cs表示每秒产生的上下文切换次数。 这2个值越大,则说明内核消耗CPU时间就越多。 cpu:显示了CPU的使用状态 us显示了用户进程消耗CPU时间百分比。如果us值越高则说明消耗CPU的时间越多,如果us的值长期大于50%则需要优化程序或算法。 sy显示内核消耗CPU时间百分比。如果us+sy值大于80%,则可能存在CPU资源不足情况。 id显示CPU处于空闲状态时间百分比。 wa显示IO等待所占用CPU时间百分比。wa越高,则IO等待越严重,则考虑提高磁盘读写性能。wa参考值20%。 sar命令:可以对每个方面进行单独的统计,但是增加了系统开销,但是对系统的统计结果不会有很大影响。
由上图可以看出我的系统只有一个CPU,如果有多个CPU的话会显示多个。 在多个CPU的情况下,如果想对其中一个CPU进行信息统计的话,则使用 sar –P 0 2 3 对第一个CPU进行信息统计。 %user显示用户进程消耗的CPU时间百分比 %nice显示运行正常进程所消耗CPU时间百分比 %system显示了系统进程消耗CPU时间百分比 %iowait显示IO等待所占用CPU时间百分比 %idle显示了CPU处在空闲时间百分比 %steal显示在内存相对紧张的环境下pagein强制对不同的页面进行的steal操作。 最后一行Average显示了上面统计的平均值。 如果在一个多CPU的系统中,如果程序使用了单线程,会造成CPU整体使用率不高,导致一个CPU在使用,其他CPU处在闲置状态。 iostat命令:主要用于统计磁盘IO状态,但是也能查看CPU使用情况,但是只能显示所有CPU的平均信息。
这里各列的意思与sar中的意思一样。 uptime命令:主要统计系统当前的运行状况。
系统在1分钟内,5分钟内,15分钟内的平均负荷。 上面的vmstat,sar,iostat,uptime命令主要是用于统计CPU信息的,还可以通过top,ps查看进程使用情况,来判断CPU负载过大的原因。