Chinaunix首页 | 论坛 | 博客
  • 博客访问: 281747
  • 博文数量: 28
  • 博客积分: 690
  • 博客等级: 上士
  • 技术积分: 860
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-24 13:52
文章分类

全部博文(28)

文章存档

2012年(28)

分类: LINUX

2012-05-01 21:23:54

Linux CPU性能调优

CPU是影响Linux性能的主要因素之一。

vmstat命令:显示关于系统各种资源之间相关性能的简要信息。

procs那栏中的r表示运行和等待CPU时间片的进程数,如果这个值长期大于系统CPU的个数那就说明CPU不足,需要增加CPU

memory那栏中:

swapd表示切换到内存交换区的内存数量。

free表示当前空闲的物理内存数量。

buff表示块设备(/dev/sda)读写需要的缓冲。

cache表示文件系统的缓存。如果值较大,说明缓存中的文件数较多。

swap

si表示由磁盘调入内存。

so表示由内存调入磁盘。

在一般情况下,siso的值都为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分钟内的平均负荷。

 

上面的vmstatsariostatuptime命令主要是用于统计CPU信息的,还可以通过topps查看进程使用情况,来判断CPU负载过大的原因。


阅读(4786) | 评论(2) | 转发(5) |
给主人留下些什么吧!~~

十七岁的回忆2012-05-03 21:38:21

呵呵,图文都很好懂,多谢分享啊

夏冰软件2012-05-02 16:28:25

您写的文章很不错,支持一下