Linux CPU性能调优

来源:岁月联盟 编辑:exp 时间:2012-05-04

CPU是影响Linux性能的主要因素之一。vmstat命令:显示关于系统各种资源之间相关性能的简要信息。

 procs那栏中的r表示运行和等待CPU时间片的进程数,如果这个值长期大于系统CPU的个数那就说明CPU不足,需要增加CPU。memory那栏中:swapd表示切换到内存交换区的内存数量。free表示当前空闲的物理内存数量。buff表示块设备(/dev/sda)读写需要的缓冲。cache表示文件系统的缓存。如果值较大,说明缓存中的文件数较多。swap中si表示由磁盘调入内存。so表示由内存调入磁盘。在一般情况下,si和so的值都为0,如果这2个值长期不为0 的话,说明系统内存不足,需要添加内存。  www.2cto.com  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处在闲置状态。  www.2cto.com   iostat命令:主要用于统计磁盘IO状态,但是也能查看CPU使用情况,但是只能显示所有CPU的平均信息。

 这里各列的意思与sar中的意思一样。 uptime命令:主要统计系统当前的运行状况。

 系统在1分钟内,5分钟内,15分钟内的平均负荷。 上面的vmstat,sar,iostat,uptime命令主要是用于统计CPU信息的,还可以通过top,ps查看进程使用情况,来判断CPU负载过大的原因。

   作者 alan9101