快速业务通道

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

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

  2 0 146388 13764 118600 213788 0 340 0 340 672 41 87 13 0 0

  2 0 147092 13788 118600 212452 0 740 0 1324 620 61 92 8 0 0

  2 0 147360 13848 118600 211580 0 720 0 720 690 41 96 4 0 0

  2 0 147912 13744 118192 210592 0 720 0 720 605 44 95 5 0 0

  2 0 148452 13900 118192 209260 0 372 0 372 639 45 81 19 0 0

  2 0 149132 13692 117824 208412 0 372 0 372 457 47 90 10 0 0

  从上面第一个结果可看到,一列(id) 表示的是空闲时间,我们可以看到,在基准线统计时,CPU 的空闲时间在79% - 100%.在第二个结果可看到,系统处于100%的占用率以及没有空闲时间.从这个比较中,我们就可以确定是否是CPU 使用率应该被优化.

  2.0 安装监控工具

  多数 *nix系统都有一堆标准的监控命令.这些命令从一开始就是*nix 的一部分.Linux 则通过基本安装包以及额外包提供了其他监控工具,这些安装包多数都存在各个Linux 发布版本中.尽管还有其他更多的开源以及第三方监控软件,但本文档只讨论基于Linux 发布版本的监控工具.

Empire CMS,phome.net

  本章将讨论哪些工具怎样来监控系统性能.

  Tool Description Base Repository

  vmstat all purpose performance tool yes yes

  mpstat provides statistics per CPU no yes

  sar all purpose performance monitoring tool no yes

  iostat provides disk statistics no yes

  netstat provides network statistics yes yes

  dstat monitoring statistics aggregator no in most distributions

  iptraf traffic monitoring dashboard no yes

  netperf Network bandwidth tool no In some distributions

  ethtool reports on Ethernet interface configuration yes yes

  iperf Network bandwidth tool no yes

  tcptrace Packet analysis tool no yes

  3.0 CPU 介绍

  CPU 利用率主要依赖于是什么资源在试图存取.内核调度器将负责调度2种资源种类:线程(单一或者多路)和中断.调度器去定义不同资源的不同优先权.以下列表从优先级高到低排列:

  Interrupts(译注:中断) - 设备通知内核,他们完成一次数据处理的过程.例子,当一块网卡设备递送网络数据包或者一块硬件提供了一次IO 请求.

  Kernel(System) Processes(译注:内核处理过程) - 所有内核处理过程就是控制优先级别.

  User Processes(译注:用户进程) - 这块涉及"userland".所有软件程序都运行在这个user space.这块在内核调度机制中处于低优先级.

  从上面,我们可以看出内核是怎样管理不同资源的.还有几个关键内容需要介绍,以下部分就将介绍context(译注:上下文切换),run queues(译注:运行队列)以及utilization(译注:利用率).

  3.1 上下文切换

  多数现代处理器都能够运行一个进程(单一线程)或者线程.多路超线程处理器有能力运行多个线程.然而,Linux 内核还是把每个处理器核心的双核心芯片作为独立的处理器.比如,以Linux 内核的系统在一个双核心处理器上,是报告显示为两个独立的处理器.

  一个标准的Linux 内核可以运行50 至 50,000 的处理线程.在只有一个CPU时,内核将调度并均衡每个进程线程.每个线程都分配一个在处理器中被开销的时间额度.一个线程要么就是获得时间额度或已抢先获得一些具有较高优先级(比如硬件中断),其中较高优先级的线程将从区域重新放置回处理器的队列中.这种线程的转换关系就是我们提到的上下文切换.

Empire CMS,phome.net

  每次内核的上下文切换,资源被用于关闭在CPU寄存器中的线程和放置在队列中.系统中越多的上下文切换,在处理器的调度管理下,内核将得到更多的工作.

  3.2 运行队

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号