快速业务通道

Linux性能监控、调优(CPU篇)

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-20

  每个CPU 都维护一个线程的运行队列.理论上,调度器应该不断的运行和执行线程.进程线程不是在sleep 状态中(译注:阻塞中和等待IO中)或就是在可运行状态中.如果CPU 子系统处于高负荷下,那就意味着内核调度将无法及时响应系统请求.导致结果,可运行状态进程拥塞在运行队列里.当运行队列越来越巨大,进程线程将花费更多的时间获取被执行.

  比较流行的术语就是"load",它提供当前运行队列的详细状态.系统 load 就是指在CPU 队列中有多少数目的线程,以及其中当前有多少进程线程数目被执行的组合.如果一个双核系统执行了2个线程,还有4个在运行队列中,则 load 应该为 6. top 这个程序里显示的load averages 是指1,5,15 分钟以内的load 情况.

  3.3 CPU 利用率

  CPU 利用率就是定义CPU 使用的百分比.评估系统最重要的一个度量方式就是CPU 的利用率.多数性能监控工具关于CPU 利用率的分类有以下几种:

  User Time(译注:用户进程时间) - 关于在user space中被执行进程在CPU 开销时间百分比.

  System Time(译注:内核线程以及中断时间) - 关于在kernel space中线程和中断在CPU 开销时间百分比.

  Wait IO(译注:IO 请求等待时间) - 所有进程线程被阻塞等待完成一次IO 请求所占CPU 开销idle的时间百分比.

  Idle(译注:空闲) - 一个完整空闲状态的进程在CPU 处理器中开销的时间百分比.

  4.0 CPU 性能监控

  理解运行队列,利用率,上下文切换对怎样CPU 性能最优化之间的关系.早期提及到,性能是相对于基准线数据的.在一些系统中,通常预期所达到的性能包括:

  Run Queues - 每个处理器应该运行队列不超过1-3 个线程.例子,一个双核处理器应该运行队列不要超过6 个线程.

  CPU Utiliation - 如果一个CPU 被充分使用,利用率分类之间均衡的比例应该是

  65% - 70% User Time

  30% - 35% System Time

  0% - 5% Idle Time

  Context Switches - 上下文切换的数目直接关系到CPU 的使用率,如果CPU 利用率保持在上述均衡状态时,大量的上下文切换是正常的.

Empire CMS,phome.net

  很多Linux 上的工具可以得到这些状态值,就是 vmstat 和 top 这2个工具.

  4.1 vmstat 工具的使用

  vmstat 工具提供了一种低开销的系统性能观察方式. vmstat 本身就是低开销工具,在非常高负荷的服务器上,你需要查看并监控系统的健康情况,在控制窗口还是能够使用vmstat 输出结果.这个工具运行在2种模式下:average 和 sample 模式.sample 模式通过指定间隔时间测量状态值.这个模式对于理解在持续负荷下的性能表现,很有帮助.下面就是

  vmstat 运行1秒间隔的示例:

  # vmstat 1

  procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----

  r b swpd free buff cache si so bi bo in cs us sy id wa

  0 0 104300 16800 95328 72200 0 0 5 26 7 14 4 1 95 0

  0 0 104300 16800 95328 72200 0 0 0 24 1021 64 1 1 98 0

  0 0 104300 16800 95328 72200 0 0 0 0 1009 59 1 1 98 0

  Table 1: The vmstat CPU statistics

  Field Description

  r The amount of threads in the run queue. These are threads that are runnable, but the CPU is not available to execute them.

  当前运行队列中线程的数目.代表线程处于可运行状态,但CPU 还未能执行.

  b This is the number of processes blocked and waiting on IO requests to finish.

  当前进程阻塞并等待IO 请求完成的数目

  in This is the number of interrupts being processed.

  当前中断被处理的数目

  cs This is the number of context switches currently happen

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号